web-dev-qa-db-ja.com

HtmlUnitはJavaScriptエラーを無視しますか?

Webサイトをトラバースしようとしていますが、そのページの1つで次のエラーが発生します。

EcmaError: lineNumber=[671] column=[0] lineSource=[null] name=[TypeError] sourceName=[https://reservations.besodelsolresort.com/asp/CalendarPopup.js] message=[TypeError: Cannot read property "parentNode" from undefined (https://reservations.besodelsolresort.com/asp/CalendarPopup.js#671)]
com.gargoylesoftware.htmlunit.ScriptException: TypeError: Cannot read property "parentNode" from undefined (https://reservations.besodelsolresort.com/asp/CalendarPopup.js#671)

とにかく私はこのエラーを無視することができますか?カレンダーが正しく読み込まれるかどうかは特に気にしません。

17
cantread

Alexeyの答えはHttpUnitに対するものです。 HtmlUnitの場合、コードは類似しています

WebClient client = new WebClient();
client.getOptions().setThrowExceptionOnScriptError(false);
29
Matthew Molloy

Matthewsの回答を使用しようとしましたが、次の方法でnewWebClient()メソッドをオーバーライドする必要がありました。

    HtmlUnitDriver driver = new HtmlUnitDriver(true) {
        @Override
        protected WebClient newWebClient(BrowserVersion version) {
            WebClient webClient = super.newWebClient(version);
            webClient.getOptions().setThrowExceptionOnScriptError(false);
            return webClient;
        }
    };
9
jseteny

HttpUnitOptions クラスの次のメソッドを使用できます。

//change the scriptingEnabled flag
static void setScriptingEnabled(boolean scriptingEnabled)

// Determines whether script errors result in exceptions or warning messages.
static void setExceptionsThrownOnScriptError(boolean throwExceptions)

または、問題のある領域をtry-catchブロックで囲みます-

try {
   // code with error

}catch(e) {
   // handle error
}
0
user1134181