2010-05-07 70 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);