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 необходимо установить одинаковые значения параметров защищенного режима для каждой зоны. Значение может быть включено или выключено, если оно одинаково для каждой зоны. Чтобы установить параметры защищенного режима, выберите "Свойства обозревателя..." в меню "Инструменты" и щелкните вкладку "Безопасность". Для каждой зоны в нижней части вкладки будет установлен флажок "Включить защищенный режим".

ProtectedModeSettings

  • Кроме того, для 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 a DWORD value named iexplore.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: