我正在使用HtmlUnit
点击触发Javascript操作的HtmlElement
:
currentPage = ((HtmlElement) currentPage.getByXPath("//*[contains(@onclick, 'check();')]").get(0)).click();
元素是:
<a href="#" onclick="check(); return false;">
返回的页面与包含该元素的页面非常相似:相同的网址,大部分是相同的HTML,但HTML
和HtmlUnit
之间存在一些细微的差异,但不保存新页面。我正在使用HttpAnalyzer来嗅探流量,我发现Webclient
正确处理JS并发送正确的请求。响应也是正确的,但是当我将currentPage
的内容转储到文件时,我发现实际的页面没有改变。我该如何解决?
答案 0 :(得分: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);