4

私は HtmlUnitDriver を使用しています。これが私のコードです。

   HtmlUnitDriver driver = new HtmlUnitDriver(true);
   driver.get("some url here");

次の例外が発生します。

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

この問題を解決するのを手伝ってください。

4

3 に答える 3

6

この種の問題を参照して、多くの質問が寄せられます。ScriptExceptionJavaScript に構文エラーがあるため、 が発生します。ほとんどのブラウザーは何らかのエラーがあっても JS を解釈できますが、HtmlUnit はその意味で柔軟性に欠けます。

オプションは次のとおりです。

  1. JS コードを修正する
  2. でJSを無効にしますWebClient
  3. HtmlUnit を使用しないでください。PhantomJSなど、より優れた JS サポートを備えた別のフレームワークを使用します(Java ベースのフレームワークではないことに注意してください)。
于 2012-10-05T01:55:09.590 に答える
4

liveperson mTag.js で同じエラーが発生しました

問題は、圧縮された mTag.js 応答にあります。

いくつかの回避策があります。

  1. 圧縮された mTag.js をクリアなものに置き換えます (LivePerson のサポートが必要です)
  2. 「本物の」Selenium WebDriver (Firefox Driver など) で作業する
于 2012-10-11T23:03:52.377 に答える