如何在不运行页面脚本的情况下在HtmlUnit中执行JavaScript

时间:2015-05-24 02:50:58

标签: java javascript html facebook htmlunit

所以,我在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);

首先按名称选择邮件正文textarea,键入" 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中的一个错误,而不是我的错误。

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

有什么办法可以绕过这个吗?此外,如果脚本在浏览器中完美运行,为什么它会破坏HtmlUnit?

谢谢!

1 个答案:

答案 0 :(得分:0)

好的,所以问题是两年了,但在我的情况下,如果我设置 webClient.getOptions()。setThrowExceptionOnScriptError(假) 我可以解决它。