【问题标题】:How to execute JavaScript in HtmlUnit without running page scripts如何在不运行页面脚本的情况下在 HtmlUnit 中执行 JavaScript
【发布时间】:2015-05-24 02:50:58
【问题描述】:

所以,我在 HtmlUnit 中遇到了一点问题

我正在尝试在 Facebook 的消息页面上运行一些 Javascript 来向某人发送消息。我正在使用的 JavaScript 是这样的,它在浏览器的控制台中运行得很好:

document.getElementsByName("message_body")[0].value = "test"; var e = document.createEvent('KeyboardEvent'); e.initKeyEvent('keydown', true, true, window, false, false, false, false, 13, 0); document.getElementsByName("message_body")[0].dispatchEvent(e);

它首先按名称选择消息正文文本区域,输入“test”,然后按回车键,发送消息。

当尝试在 HtmlUnit 方法中使用 executeJavaScript() 时,它会失败,但甚至不是因为我的代码。

我收到此错误:

net.sourceforge.htmlunit.corejs.javascript.EvaluatorException: Java class "com.gargoylesoftware.htmlunit.ScriptException" has no public instance field or method named "message". (https://fbstatic-a.akamaihd.net/rsrc.php/v2/yj/r/zt0nwbhPchP.js#36)

...这似乎是 Facebook 的 JavaScript 中的错误,而不是我的。

问题?如果没有 HtmlUnit 看到 Facebook 的代码并打破异常,我就无法在页面上运行我自己的任何 JavaScript。

有什么办法可以规避这个问题吗?另外,如果脚本在浏览器中运行良好,为什么会破坏 HtmlUnit?

谢谢!

【问题讨论】:

    标签: java javascript html facebook htmlunit


    【解决方案1】:

    好的,所以问题是两年前的问题,但就我而言,如果我设置 webClient.getOptions().setThrowExceptionOnScriptError(false) 我可以解决它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-02
      相关资源
      最近更新 更多