禁用JavaScript的HTMLunit onclick函数
我在使用HtmlUnit访问网站时遇到问题。当我在启用JavaScript的情况下使用“webclient.getPage(URL)”时,该站点会返回错误和站点超时,但当我禁用JavaScript时,我可以获取该页面。当我尝试从一个页面移动到另一个页面时,问题就出现了,所有导航都是以HTML标记的“onclick”属性中的JavaScript方法的形式在站点上完成的 我在获取页面(originalPage)时禁用了JavaScript,但在获取页面并尝试在“onclick”属性中执行JavaScript方法时,我将其打开。JavaScript方法位于“originalPage”中的脚本标记中禁用JavaScript的HTMLunit onclick函数,javascript,html,onclick,htmlunit,Javascript,Html,Onclick,Htmlunit,我在使用HtmlUnit访问网站时遇到问题。当我在启用JavaScript的情况下使用“webclient.getPage(URL)”时,该站点会返回错误和站点超时,但当我禁用JavaScript时,我可以获取该页面。当我尝试从一个页面移动到另一个页面时,问题就出现了,所有导航都是以HTML标记的“onclick”属性中的JavaScript方法的形式在站点上完成的 我在获取页面(originalPage)时禁用了JavaScript,但在获取页面并尝试在“onclick”属性中执行JavaSc
originalPage = webClient.getPage(url);
webclient.setjavascriptenabled(true)
javaScriptCode = "javascript:getNextPage();";
scriptResult = originalPage.executeJavaScript(javaScriptCode);
nextPage = scriptResult.getNewPage();
我的代码不返回下一页,而是返回与“originalPage”相同的页面。有没有可能因为我在禁用JavaScript时获得了“originalPage”,所以它无法正常工作?在调用getPage()加载JS文件时,有什么方法可以选择吗
(我已经验证了JavaScript方法在浏览器中是否有效)
有没有可能因为我在禁用JavaScript时获得了“originalPage”,所以它无法正常工作
当然
在调用getPage()加载JS文件时,有什么方法可以选择吗
这是可能的,但您必须实现自己的WebConnection
,并在HTML处理之前解析HTML文本。绝对不是一个有趣的任务。此外,如果您最终将HTML解析为文本,那么就不需要HTMLUnit了,对吗
另一种方法是将要执行的JS代码转换为HTTP请求,并使用
WebRequests
手动启动它们。或者,如果您不介意使用与Java无关的解决方案,请使用具有更好JS支持的解决方案。有没有一种方法可以强制我的JavaScript方法工作,而无需引用原始页面?就像web浏览器中的控制台一样?您必须在页面中执行JS