Это сообщение об ошибке ...
selenium.common.exceptions.WebDriverException: Message: Failed to navigate to https://www.google.ca. This usually means that a call to the COM method IWebBrowser2::Navigate2() failed. The error returned is: Received error: 0x80004005 ['Unspecified error']
... подразумевает, что структура для управления internet-explorer -11 не смогла создать экземпляр браузера как COM-объект.
История настроек защищенного режима для Inte rnet Explorer
@ JimEvans в статье Вы делаете это неправильно: IE Защищенный режим и WebDriver четко упоминаются при автоматизации internet-explorer через iedriverserver :
Сеанс браузера был представлен одним экземпляром исполняемого файла iexplore.exe. Фреймворк для управления IE может создать экземпляр браузера как COM-объект, используя CoCreateInstance () , или может легко передать COM-интерфейсы в работающий экземпляр, используя наличие ActiveAccessibility и отправив сообщение WM_HTML_GETOBJECT
к соответствующему дескриптору окна IE. Как только у инфраструктуры будет указатель на COM-интерфейсы, вы можете быть уверены, что они будут действительны в течение всего срока службы браузера. Это также означало, что вы могли легко присоединяться к событиям, запускаемым браузером через DWebBrowserEvents2 COM-интерфейс.
Затем появилась комбинация IE 7 и Windows Vista. В целях уменьшения поверхности атаки, представленной вредоносными веб-сайтами, IE 7 представил так называемый Защищенный режим , который использовал обязательный контроль целостности в Windows Vista для предотвращения инициируемых действий IE, обычно инициируемых на JavaScript, благодаря возможности доступа к операционной системе, как это было в предыдущих выпусках. Хотя в целом это приветствовалось большинством пользователей IE, оно создало всевозможные проблемы для автоматизации IE.
Когда вы переходите в защищенный режим или выходите из него с помощью, скажем, переход от внутреннего веб-сайта intr anet к веб-сайту на inte rnet, IE должен создать новый процесс, поскольку он не может изменить уровень обязательного контроля целостности существующего процесса. Более того, в версиях IE после 7 не всегда очевидно, что граница защищенного режима была пересечена, поскольку IE пытается представить лучший пользовательский интерфейс, плавно объединяя окно браузера нового процесса с уже открытым окном браузера. . Это скрытое переключение процессов также означает, что любые ссылки, указывающие на COM-объекты IE до пересечения границы защищенного режима, остаются указывающими на объекты, которые больше не используются IE после пересечения границы.
Более того, если вы посмотрите на Требуемая конфигурация из Inte rnet Драйвер проводника , здесь четко указано:
Настройки защищенного режима
В Inte rnet Explorer 7 или выше в Windows Vista или Windows 7 вы должны установить Защищенный режим для каждой зоны, чтобы одинаковое значение . Значение может быть on
или off
, если оно одинаково для каждой зоны. Чтобы установить параметры Защищенного режима , вы должны выбрать Internet Options
в меню Tools
, а затем щелкнуть Security tab
. Для каждой зоны будет установлен флажок в нижней части вкладки с надписью Enable Protected Mode
.
![ProtectedModeSettings](https://i.stack.imgur.com/cgvp0.png)
Solution
You need to ensure that the Protected Mode settings for each zone to be the same value.
References
You can find a couple of relevant discussions in: