【问题标题】:HtmlUnit prevent javascript verifier from redirectingHtmlUnit 阻止 javascript 验证程序重定向
【发布时间】:2012-06-21 19:18:51
【问题描述】:

我正在编写一个 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)

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

当我在浏览器中访问相同的 URL 时,页面会顺利加载。

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

有没有其他人遇到过类似的问题,或者有什么见解? 有没有办法阻止这段 javascript 执行,而不是其他的?

交叉发布:http://www.experts-exchange.com/Programming/Languages/Java/Q_27765581.html

提前致谢,

阿修罗

更新:事实证明,我可以通过发布请求获得所需的信息。感谢您的所有帮助!

【问题讨论】:

    标签: java javascript htmlunit


    【解决方案1】:

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

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

    这将暂时禁用 JavaScript

    【讨论】:

    • 谢谢,我去看看,看起来用起来很简单
    • 虽然我最终以另一种方式解决了我的问题,但这回答了我提出的问题。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-11
    • 1970-01-01
    • 2018-12-23
    相关资源
    最近更新 更多