HtmlUnit阻止javascript验证程序重定向

时间:2012-06-21 19:18:51

标签: java javascript htmlunit

我正在编写一个Java程序,它自动将信息插入到网站中,然后网站会对该信息执行一些javascript函数。

我的问题是,当页面加载时,它会自动调用一些检查浏览器信息的javascript,然后建议我下载Java。当然我已经安装了java,否则程序就无法运行了!

这是脚本重定向到我的网站,以便执行检查:http://java.com/js/deployJava.txt

我的代码的相关部分:

WebClient webClient = new WebClient(BrowserVersion.FIREFOX_3_6);
HtmlPage page = webClient.getPage("https://www.blahblahblah.com");
// this is where I get redirected

HtmlTextInput txtElement = (HtmlTextInput) page.getElementById("itemID");
// this returns null, because I am on a different page than what I expect
txtElement.type("my search info");

page = txtElement('\n');  // to submit the field (there is no submit button)

我尝试过所有不同的浏览器设置,但没效果。

当我在浏览器中访问相同的网址时,页面会毫不费力地加载。

当我尝试禁用重定向时,getPage返回一个空的TextPage,而不是HtmlPage。

有没有其他人遇到类似的问题,或有任何见解? 有没有办法防止这个javascript被执行,而不是其余的?

Cross Cross:http://www.experts-exchange.com/Programming/Languages/Java/Q_27765581.html

提前致谢,

阿苏拉

更新:事实证明,我能够通过发布请求获得我需要的信息。谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

您可以使用包含在HtmlUnit中的JWebUnit,然后执行以下操作:

public void testFoo() {
  beginAt("blabla");
  ...
  setScriptingEnabled(false);
  ...//Problematic code
  setScriptingEnabled(true);
  ...
}

这将暂时禁用JavaScript