2014-01-22 7 views
10

Ich versuche, über eine Website zu überqueren, sondern auf einer ihrer Seiten bekomme ich diesen Fehler:HtmlUnit JavaScript-Fehler ignorieren?

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) 

Gibt es trotzdem kann ich nur diesen Fehler ignorieren? Es ist mir egal, ob der Kalender richtig lädt.

+0

Lösung bezogen auf das endgültige Feld http Einstellung: // Stackoverflow .com/questions/8745061/ist-es-möglich-zu-ignorieren-javascript-ausnahmen-wenn-arbeiten-mit-webdriver-html/35037593 # 35037593 – user3093030

Antwort

0

Sie können die folgenden Methoden der HttpUnitOptions-Klasse verwenden:

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

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

Oder den Problembereich in Try-catch-Block umschließen -

try { 
    // code with error 

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

Gern geschehen! –

+5

Wie bezieht sich 'HttpUnit' auf' HtmlUnit'? Scheint, dass dies verschiedene Frameworks sind ... – Yura

20

Alexey Antwort für Httpunit ist. Für Htmlunit ist der Code ähnlich

WebClient client = new WebClient(); 
client.getOptions().setThrowExceptionOnScriptError(false); 
+0

Wie HtmlUnit auf WebClient verweist? – user12384512

4

Ich versuchte Matthews Antwort zu bedienen und benötigt die newWebClient() -Methode in der folgenden Art und Weise außer Kraft zu setzen:

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