Неожиданная ошибка при запуске Internet Explorer. IELaunchURL () вернул HRESULT 80070012 с Selenium 3.13.0: IEDriverServer_x64_3.13.0 - PullRequest
0 голосов
/ 04 июля 2018

Мои тесты на селен выполнялись нормально в браузере Internet Explorer 11, но кое-что изменилось, и теперь я получаю сообщение об ошибке ниже.

Started InternetExplorerDriver server (64-bit)
3.13.0.0
Listening on port 32274
Only local connections are allowed
[ERROR] [BaseTest] [startWebDriverClient] Could not start a new session.      org.openqa.selenium.SessionNotCreatedException: Unexpected error launching Internet Explorer. IELaunchURL() returned HRESULT 80070012 ('There are no more files.') for URL 'http://localhost:32274/'
Build info: version: '3.13.0', revision: '2f0d292', time: '2018-06-25T15:24:21.231Z'
System info: host: 'LUSMIN-F00Q46Y', ip: '***.**.**.**', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '9.0.1'
Driver info: driver.version: unknown
remote stacktrace: 
    at com.tcs.saf.base.BaseTest.startWebDriverClient(BaseTest.java:496)
    at com.tcs.saf.base.BaseTest.beforeMethod(BaseTest.java:258)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.base/java.lang.reflect.Method.invoke(Unknown Source)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
    at org.testng.internal.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:59)
    at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:451)
    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:222)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:516)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:707)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:979)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)

Ниже приведен мой код для создания экземпляра браузера IE;

if (browserType.equalsIgnoreCase("InternetExplorer")) {
            try {
                System.setProperty("webdriver.ie.driver", curProj+"\\drivers\\IEDriverServer.exe");             
                InternetExplorerOptions options = new InternetExplorerOptions();
                options.introduceFlakinessByIgnoringSecurityDomains();
                options.requireWindowFocus();               
                webdriver = new InternetExplorerDriver(options);
                logger.info("getWebDriver - Setting webdriver.ie.driver system property as: " + System.getProperty("webdriver.ie.driver"));
            } catch(IllegalStateException e) {
                logger.error("The path to the driver executable must be set by the webdriver.ie.driver system property. ",e.fillInStackTrace());
                throw new IllegalStateException("The path to the driver executable must be set by the webdriver.ie.driver system property.");
            }
        }

Ответы [ 3 ]

0 голосов
/ 04 июля 2018

Согласно журналу ошибок, вы используете java 9. Selenium пока не поддерживает Java 9. Пожалуйста, измените настройки, чтобы использовать Java 8 и попробуйте снова. Это может решить проблему.

0 голосов
/ 04 июля 2018

Это сообщение об ошибке ...

Could not start a new session. org.openqa.selenium.SessionNotCreatedException: Unexpected error launching Internet Explorer. IELaunchURL() returned HRESULT 80070012 ('There are no more files.') for URL 'http://localhost:32274/'

... означает, что IEDriverServer не смог инициировать / создать новый WebBrowser , т.е. IE Browser сеанс.


Согласно Неожиданная ошибка при запуске Internet Explorer. IELaunchURL () вернул HRESULT 80070012 («Больше нет файлов.») @JimEvans четко упоминает:

Функция IELaunchURL () является Windows API. Водитель просто звонит. Если он возвращает ошибку, вот в чем проблема. Microsoft не предоставляет никакой документации о том, что может вызвать эту ошибку при использовании этого API. Что произойдет, если вы попытаетесь запустить тест на ОС класса рабочей станции, например Windows 10, а не на Windows Server? Я понимаю, что это не решение «серебряной пули», но в среде сервера могут присутствовать настройки безопасности, которые не находятся в среде рабочей станции, которые могут помешать выделению дополнительных дескрипторов файлов в этом контексте.


* * IntroduceFlakinessByIgnoringSecurityDomains тысячи двадцать-одина (); * * тысяча двадцать-две

Поскольку вы добавили опцию introduceFlakinessByIgnoringSecurityDomains(); согласно Вы делаете это неправильно: защищенный режим IE и WebDriver @JimEvans снова ясно упоминает, что добавление options.introduceFlakinessByIgnoringSecurityDomains(); может помочь вам преодолеть первоначальное исключение и позволит выполнить тест в большинстве случаев без инцидентов. Однако использование этой возможности не решает основную проблему. Если граница защищенного режима пересечена, очень неожиданное поведение, включающее зависание , расположение элемента, не работающее , и клики, не распространяемые , могут происходят.


Решение

Если вы посмотрите на Необходимую конфигурацию из Драйвер Internet Explorer следующие пункты четко указаны:

Защищенный режим

В Internet Explorer 7 или более поздней версии в Windows Vista или Windows 7 необходимо установить одинаковые значения параметров Защищенный режим для каждой зоны. Значение может быть включено или выключено, если оно одинаково для каждой зоны. Чтобы установить Настройки защищенного режима , вам необходимо выбрать «Свойства обозревателя» в меню «Сервис» и затем нажать на вкладку Безопасность . Для каждой зоны в нижней части вкладки будет установлен флажок Включить защищенный режим .

ProtectedModeSettings

Уровень масштабирования браузера

Уровень масштабирования браузера должен быть установлен на 100%, чтобы события собственной мыши могли быть установлены в правильные координаты.

Ссылки

Подробное обсуждение можно найти в:

0 голосов
/ 04 июля 2018

Пожалуйста, попробуйте шаги, упомянутые ниже, а затем попробуйте запустить скрипт автоматизации для браузера IE.

  1. Только для IE 11, вам необходимо установить запись реестра на целевом компьютере, чтобы драйвер мог поддерживать соединение с экземпляром Internet Explorer, который он создает. Для 32-разрядных установок Windows ключ, который необходимо проверить в редакторе реестра, - это HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BFCACHE.

  2. Для 64-разрядных установок Windows ключ HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BFCACHE.

Обратите внимание, что подраздел FEATURE_BFCACHE может присутствовать или не присутствовать, и его следует создавать, если он отсутствует. Внутри этого ключа создайте значение DWORD с именем iexplore.exe со значением 0.

Настройки защищенного режима одинаковы для всех зон. Расширенный защищенный режим отключен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...