У меня есть страница с пользовательской логикой window.addEventListener("error", ...)
. Я хотел бы проверить, что это работает, и единственный реальный способ сделать это - выдать ошибку.
Я пробовал это:
await browser.executeScript("throw new Error();");
... но сама Selenium видела ошибку и считала ее исключением. Хорошо.
JavascriptError: Error
at Object.throwDecodedError (node_modules/selenium-webdriver/lib/error.js:550:15)
at parseHttpResponse (node_modules/selenium-webdriver/lib/http.js:542:13)
at Executor.execute (node_modules/selenium-webdriver/lib/http.js:468:26)
Далее попытался сделать это асинхронно:
await browser.executeScript(() => {
setTimeout(() => { throw new Error(); }, 1);
});
... но сама страница не заметила ошибку (и да, я проверил, что добавление одного в инструменты dev вызывает ожидаемую обработку).
Затем я попытался использовать асинхронный скрипт, который планирует ошибку, а затем обратный вызов:
await browser.executeAsyncScript((callback) => {
setTimeout(
() => {
setTimeout(callback, 1);
throw new Error();
},
1);
});
... но сама страница все еще не заметила ошибку.
Я что-то здесь упускаю?