Ответ 1
Ответ Alexey для HttpUnit. Для HtmlUnit код похож на
WebClient client = new WebClient();
client.getOptions().setThrowExceptionOnScriptError(false);
Я пытаюсь пройти через веб-сайт, но на одной из своих страниц я получаю эту ошибку:
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)
В любом случае я могу просто проигнорировать эту ошибку? Я не особо забочусь, правильно ли календарь загружается.
Ответ Alexey для HttpUnit. Для HtmlUnit код похож на
WebClient client = new WebClient();
client.getOptions().setThrowExceptionOnScriptError(false);
Я попытался использовать ответ Matthews и должен был переопределить метод newWebClient() следующим образом:
HtmlUnitDriver driver = new HtmlUnitDriver(){
@Override
protected WebClient newWebClient(BrowserVersion version) {
WebClient webClient = super.newWebClient(version);
webClient.getOptions().setThrowExceptionOnScriptError(false);
return webClient;
}
};
Вы можете использовать следующие методы 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
}