gargoylesoftware でhtmlunitの学習を始めたばかりですが、問題があります。ボタンのクリック後に表示されるページに iframe があります。この iframe を名前で取得しようとすると、ElementNotFoundException
. またpage.getFrames()
、フレームを返してみましたが、探しているフレームがないか、空白です。そのため、js/ajax が更新されていないようです。jcpenny(dot)com で作業していますが、「マイ バッグ」ページから「チェックアウト」しようとすると問題が発生します。これが私の WebClient 設定です。
BrowserVersion bv = BrowserVersion.CHROME_16;
bv.setUserAgent("Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)");
CookieManager cm = new CookieManager();
cm.clearCookies();
cm.setCookiesEnabled(true);
WebClient webClient = new WebClient(bv);
webClient.setCookieManager(cm);
webClient.setAjaxController(new NicelyResynchronizingAjaxController());
webClient.setJavaScriptTimeout(15000);
webClient.setCssErrorHandler(new SilentCssErrorHandler());
webClient.getOptions().setJavaScriptEnabled(true);
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.waitForBackgroundJavaScript(15000);
webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
webClient.getOptions().setRedirectEnabled(true);
webClient.getOptions().setUseInsecureSSL(true);
webClient.setRefreshHandler(new ThreadedRefreshHandler());