使用HTMLUnit调用JavaScript函数

Der*_*ede 7 javascript htmlunit

我想调用的函数showPage('3');这个页面,为以后使用页面的源代码.我试着htmlUnit这样做:

WebClient webClient = new WebClient();

webClient.waitForBackgroundJavaScriptStartingBefore(10000);
HtmlPage page = webClient.getPage("http://www.visittrentino.it/it/cosa_fare/eventi/risultati?minEventDate=09012014&maxEventDate=31012014&tp=searchForm.thismonth&ltp=gennaio");

String javaScriptCode = "showPage('3');";

ScriptResult result = page.executeJavaScript(javaScriptCode);
result.getJavaScriptResult();
System.out.println("result: "+ result);
Run Code Online (Sandbox Code Playgroud)

但它不起作用.打印出来:

结果:net.sourceforge.htmlunit.corejs.javascript.Undefined@a303147

和其他10000警告.我究竟做错了什么?我需要更改此站点的页面以对源代码进行一些爬行.是否有另一种方式(也许更容易)从Java代码调用jsp-function然后在页面源中导航?谢谢你的帮助,祝你有个愉快的一天.

Kic*_*ick 7

您打印ScriptResult对象而不是页面的内容,将SOP代码更改为result.getNewPage()

  • `ScriptResult.getNewPage()` 在最近的版本中被移除。更改建议使用`page.getWebClient().getCurrentWindow().getEnclosedPage()`:https://github.com/HtmlUnit/htmlunit/commit/120d9040184cecea08073ccacb3383848a7f9746#diff-32b86263e0cea84b724 (3认同)