使用HTMLUnit调用JavaScript函数

时间:2014-01-09 15:21:01

标签: javascript htmlunit

我正在尝试调用this page的函数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);

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

  

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

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

1 个答案:

答案 0 :(得分:7)

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