Python selenium webdriver catch js исключения - PullRequest
0 голосов
/ 09 июля 2020

Я использую селен с python для отправки некоторых запросов HEAD через хром. Код выглядит следующим образом:

js = 'var callback = arguments[0];var xmlhttp = new XMLHttpRequest();\
    xmlhttp.responseType = "json";xmlhttp.open("HEAD", "' + url.rstrip() + '", true);\
        xmlhttp.onreadystatechange= function() {if(xmlhttp.readyState==4) \
            {callback(xmlhttp.getAllResponseHeaders());};};xmlhttp.send();'
head = driver.execute_async_script(js)

Учитывая, что CORS не является проблемой (веб-безопасность отключена в Chrome для некоторых экспериментов), если я устанавливаю URL-адрес действительного веб-сайта, он возвращает действительный ответ, поскольку он должен. Если URL-адрес недействителен, хром генерирует это исключение:

HEAD https://www.itdoesnotexist.com/ net::ERR_NAME_NOT_RESOLVED

URL-адрес был установлен на 'https://itdoesnotexist.com', а код JS был запущен непосредственно из консоли браузера для получения этого исключения. Однако Selenium не сообщает об этом исключении, и возвращается пустая строка. Есть ли способ зафиксировать это исключение в селене?

...