2010-05-07 75 views
0

我使用HtmlUnit點擊一個HtmlElement觸發JavaScript操作:如何強制HtmlUnit保存頁面?

currentPage = ((HtmlElement) currentPage.getByXPath("//*[contains(@onclick, 'check();')]").get(0)).click(); 

的元素是:

<a href="#" onclick="check(); return false;"> 

返回的頁面是非常相似的頁面,包含元素:相同網址大都是同一個HTML,但是HTMLHtmlUnit存在一些細微差別,不保存新頁面。我使用HttpAnalyzer來嗅探流量,我發現Webclient正確處理JS併發送正確的請求。響應也是正確的,但是當我將currentPage的內容轉儲到文件時,我發現實際頁面沒有改變。我該如何解決它?

回答

0

我有同樣的問題。 在我的情況是:

<div id="loginButton" class="buttonOuter" onclick="this.childNodes[1].click();"> 
<div class="buttonInner"> 
<a href="#">Login</a> 
</div> 
<input class="loginHiddenButton" type="submit" onclick="submit_proc(false,'')"> 
</div> 

我解決這個問題是這樣的:

HtmlPage page1 = webClient.getPage("myURI"); 
HtmlElement htmlElement = (HtmlElement) page1.getByXPath("loginHiddenButtonXPATH").get(0); 

webClient.setJavaScriptEnabled(false); 
page1 = htmlElement.click(); 
webClient.setJavaScriptEnabled(true);