0

HtmlUnit用来点击HtmlElement触发 Javascript 动作的:

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

元素是:

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

返回的页面与包含该元素的页面非常相似:相同的 URL,大部分相同的 HTML,但有一些细微的差异,HTML并且HtmlUnit不会保存新页面。我正在使用 HttpAnalyzer 嗅探流量,我看到Webclient正确处理 JS 并发送正确的请求。响应也是正确的,但是当我将 的内容转储currentPage到文件时,我看到实际页面没有改变。我该如何解决?

4

1 回答 1

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);
于 2011-11-01T13:07:12.083 回答