selenium.common.exceptions.WebDriverException не было обработано кодом пользователя и ошибкой HTTP 400. Имя хоста запроса недопустимо в Selenium
В последнее время я пытаюсь научиться использовать Selenium в Python, но когда я пытаюсь инициализировать Internet Explorer, я получаю исключение WebDriver. Вот строка, которая вызывает исключение (и это в значительной степени начало кода):
driver = webdriver.Ie(r'pathtothefile\MicrosoftWebDriver.exe')
(Я поставил путь, потому что я не знаю, где находится путь, который делает этот аргумент ненужным, ха-ха)
И ошибка заключается в следующем:
selenium.common.exceptions.WebDriverException was unhandled by user code
Message: Message: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request - Invalid Hostname</h2>
<hr><p>HTTP Error 400. The request hostname is invalid.</p>
</BODY></HTML>
Поскольку я делаю это в корпоративной сети, это может быть связано с некоторыми ограничениями, я думаю...? Или, может быть, тот факт, что я использую корпоративный компьютер, чтобы они могли отобрать некоторые конкретные действия...? В любом случае, что бы это ни было, что я мог сделать, чтобы решить эту проблему?
Заранее спасибо!
1 ответ
Это сообщение об ошибке...
selenium.common.exceptions.WebDriverException was unhandled by user code
.
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request - Invalid Hostname</h2>
<hr><p>HTTP Error 400. The request hostname is invalid.</p>
... подразумевает, что вашей программе не удалось инициировать / создать новый сеанс WebBrowsing, т.е. сеанс браузера InternetExplorer.
Ваша главная проблема - несовместимость между типами двоичных файлов, которые вы используете.
Для инициализации браузера Internet Explorer необходимо использовать исполняемый файл IEDriverServer, но не MicrosoftWebDriver.exe (который предназначен для браузера Edge).
Решение
Вам необходимо скачать и распаковать соответствующий IEDriverServer с сайта http://selenium-release.storage.googleapis.com/index.html и передать абсолютный путь IEDriverServer следующим образом:
Пример ОС Windows:
driver = webdriver.Ie(executable_path=r'C:\path\to\IEDriverServer.exe')
Пример ОС Linux и MAC OS X:
driver = webdriver.Ie(executable_path='/path/to/IEDriverServer')