禁用JavaScript的HTMLunit onclick函数

时间:2014-06-16 21:53:09

标签: javascript html onclick htmlunit

我一直无法使用HtmlUnit访问网站。当我使用&webhient.getPage(URL)'网站时,网站会返回错误和网站超时启用JavaScript后,但当我禁用JavaScript时,我能够获取该页面。当我尝试从一个页面移动到另一个页面时,会出现问题,所有导航都是在网站上以JavaScript方法的形式在“onclick”中完成的。 HTML标签的属性。

我在获取页面(originalPage)时禁用了JavaScript,但是在获取页面后尝试在' onclick'中执行JavaScript方法时将其打开。属性。 JavaScript方法位于&original;'。

中的脚本标记中
originalPage = webClient.getPage(url);

webclient.setjavascriptenabled(true)

javaScriptCode = "javascript:getNextPage();";
scriptResult = originalPage.executeJavaScript(javaScriptCode);
nextPage = scriptResult.getNewPage();

我的代码不会返回下一页,而是返回与' originalPage'相同的页面。是否有可能是因为我得到了原始页面'虽然JavaScript被禁用但它不起作用?当我调用getPage()时,有什么方法可以在JS文件加载时选择吗?

(我已经确认JavaScript方法可以在浏览器中运行)

1 个答案:

答案 0 :(得分:0)

  

是否有可能因为我在禁用JavaScript时获得了'originalPage',它将无法正常运行?

绝对

  

当我调用getPage()时,有什么方法可以在JS文件加载时选择吗?

这是可能的,但您必须实现自己的WebConnection并在HTMLUnit处理之前解析HTML的文本。绝对不是一个有趣的任务。此外,如果您最终将HTML解析为文本,那么就不需要HTMLUnit了,对吧?

另一种方法是将要执行的JS代码转换为HTTP请求,并使用WebRequests手动触发它们。或者,如果您不介意使用非Java相关解决方案,请使用具有更好JS支持的PhantomJS