IE11 Selenium WebDriverException: не удалось перейти. (org.openqa.selenium.WebDriverException ...IWebBrowser2::Navigate2() не удалось
Я новичок в автоматизированном тестировании и, хотя мои тесты Selenium работают на Chrome и Firefox, они не работают на IE11. Я сделал все проверки, которые подробно описал ниже, но продолжаю сталкиваться с этой ошибкой:
org.openqa.selenium.WebDriverException: не удалось перейти к http://myapp/. Обычно это означает, что вызов COM-метода IWebBrowser2::Navigate2() завершился неудачно.
Сначала я выполнил необходимую настройку, как описано в https://code.google.com/p/selenium/wiki/InternetExplorerDriver) .
Я попытался отредактировать свой реестр в соответствии с предложением In IE: org.openqa.selenium.WebDriverException: обычно это означает, что при вызове COM-метода IWebBrowser2::Navigate2() не удалось выполнить HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_HTTP_USERNAME_PASSWORD_DISABLE добавьте новое значение DWORD с именем iexplore.exe и значением 0, как описано в LordOfThePigs
Я также попытался представить фрагмент кода, предложенный karunakar sapogu: new_window = self.driver.window_handles [1]
self.driver.switch_to_window (new_window) Но я, кажется, не представляю это правильно, потому что я получил ошибки Java.
Кто-нибудь решил эту проблему в Java? Не могли бы вы дать мне пошаговые инструкции? (имейте в виду, что я новичок и имею ограниченные знания Java) .
Спасибо вам большое!
2 ответа
1) Вы уверены, что ваш экземпляр IEdriver запущен?
2) Вы использовали IEdriver x64 или IEDriver x86?
Даже если вы используете x64 windows, в большинстве случаев вы используете интернет exlporer x86. Пожалуйста, попробуйте драйвер x86 и попытайтесь воспроизвести такое поведение.
Это сработало! Спасибо. Проблема была в том, что у меня была 64-битная версия. Заменив его 32-битной версией, мой код заработал (у меня есть драйвер в System32, чтобы обойти изменение пути)
System.setProperty(webdriver.ie.driver", "C://Windows/System32/IEDriverServer.exe");
driver = new InternetExplorerDriver();
baseUrl = "http://mysite";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
Это сообщение об ошибке...
org.openqa.selenium.WebDriverException: Failed to navigate to http://myapp. This usually means that a call to the COM method IWebBrowser2::Navigate2() failed
... означает, что IEDriverServer не смог инициировать / создать новый контекст просмотра, то есть сеанс браузера Internet Explorer в качестве COM-объекта.
Требуемая конфигурация для драйвера Internet Explorer
Требуемая конфигурация в Internet Explorer Driver четко говорится:
- В
IEDriverServer
Exectuable должен быть загружен и помещен в ваш PATH. - В IE 7 или более поздних версиях в Windows Vista или Windows 7 необходимо установить одинаковые значения параметров защищенного режима для каждой зоны. Значение может быть включено или выключено, если оно одинаково для каждой зоны. Чтобы установить параметры защищенного режима, выберите "Свойства обозревателя..." в меню "Инструменты" и щелкните вкладку "Безопасность". Для каждой зоны в нижней части вкладки будет установлен флажок "Включить защищенный режим".
- Кроме того, для IE 10 и более поздних версий необходимо отключить расширенный защищенный режим. Эта опция находится в
Advanced
вкладка диалогового окна "Свойства обозревателя". - Уровень масштабирования браузера должен быть установлен на
100%
так что собственные события мыши могут быть установлены в правильные координаты. - For Windows 10, you also need to set Change the size of text, apps, and other items to
100%
in display settings. - For IE 11 only, you will need to set a registry entry on the target computer so that the driver can maintain a connection to the instance of Internet Explorer it creates.
- For 32-bit Windows installations, the key you must examine in the registry editor is
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE
. - For 64-bit Windows installations, the key is
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BFCACHE
. - Note that the
FEATURE_BFCACHE
subkey may or may not be present, and should be created if it is not present. Inside this key, create aDWORD
value namediexplore.exe
with the value of 0`.
Solution
First, you need to ensure that the Protected Mode settings for each zone to be the same value. Additionally you also need to ensure the Required Configuration for Internet Explorer Driver.
References
You can find a couple of relevant discussions in:
- Internet Explorer Protective mode setting and Zoom levels
- How does the registry entry HKEY_LOCAL_MACHINE\…\FEATURE_BFCACHE for InternetExplorerDriver solves the Internet Explorer 11 issue?
- How to ignore zoom setting
- Selenium InternetExplorerDriver doesn't get focus on the window
- How to ignore protected Mode Settings for Internet Explorer using setCapability() through Selenium and Java?