首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HtmlUnit ScriptException错误

HtmlUnit ScriptException错误
EN

Stack Overflow用户
提问于 2012-10-04 14:11:15
回答 3查看 8.5K关注 0票数 4

我使用的是HtmlUnitDriver,下面是我的代码。

代码语言:javascript
复制
   HtmlUnitDriver driver = new HtmlUnitDriver(true);
   driver.get("some url here");

我得到了以下异常:

代码语言:javascript
复制
Caused by: com.gargoylesoftware.htmlunit.ScriptException: Wrapped com.gargoylesoftware.htmlunit.ScriptException: SyntaxError: missing ; before statement (http://sales.liveperson.net/hcp/html/mTag.js?site=7824460#1(eval)#1)
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:595)
    at net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:537)
    at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:538)
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.callFunction(JavaScriptEngine.java:545)
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.callFunction(JavaScriptEngine.java:520)
    at com.gargoylesoftware.htmlunit.html.HtmlPage.executeJavaScriptFunctionIfPossible(HtmlPage.java:896)
    at com.gargoylesoftware.htmlunit.javascript.host.EventListenersContainer.executeEventListeners(EventListenersContainer.java:162)
    at com.gargoylesoftware.htmlunit.javascript.host.EventListenersContainer.executeBubblingListeners(EventListenersContainer.java:221)
    at com.gargoylesoftware.htmlunit.javascript.host.Node.fireEvent(Node.java:735)
    at com.gargoylesoftware.htmlunit.html.HtmlElement$2.run(HtmlElement.java:866)
    at net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:537)
    at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:538)
    at com.gargoylesoftware.htmlunit.html.HtmlElement.fireEvent(HtmlElement.java:871)
    at com.gargoylesoftware.htmlunit.html.HtmlPage.executeEventHandlersIfNeeded(HtmlPage.java:1162)
    at com.gargoylesoftware.htmlunit.html.HtmlPage.initialize(HtmlPage.java:202)
    at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseInto(WebClient.java:440)
    at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:311)
    at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:373)
    at org.openqa.selenium.htmlunit.HtmlUnitDriver.get(HtmlUnitDriver.java:346)
    ... 8 more

请帮我解决这个问题。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-05 09:55:10

关于这类问题,人们提出了许多问题。引发ScriptException是因为您的javascript中存在语法错误。大多数浏览器都设法解释JS,即使有一些错误,但HtmlUnit在这种意义上有点僵化。

您可以选择:

更正JS代码,并在WebClient

  • Don't HtmlUnit中禁用JS。使用具有更好JS支持的不同框架,例如PhantomJS (注意,它不是基于Java的框架)
票数 6
EN

Stack Overflow用户

发布于 2014-02-06 18:52:27

代码语言:javascript
复制
_webClient.getOptions().setThrowExceptionOnScriptError(false);

在这个错误的JS场景中工作。

票数 5
EN

Stack Overflow用户

发布于 2012-10-12 07:03:52

我在liveperson mTag.js上也遇到了同样的错误。

问题出在压缩的mTag.js响应上。

有几种解决方法:

  1. 将压缩的mTag.js替换为清晰的(需要LivePerson支持)
  2. 使用真正的Selenium WebDriver (Firefox驱动程序或类似驱动程序)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12721277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档