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')
    
Другие вопросы по тегам