Не удалось создать новый удаленный сеанс
Как решить эту проблему. Раньше мой код работал, но настройки IE были сброшены кем-то. Теперь я получаю это исключение.
Started InternetExplorerDriver server (32-bit)
2.53.1.0
Listening on port 16183
Only local connections are allowed
Oct 21, 2016 10:14:12 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Attempting bi-dialect session, assuming Postel Law holds true on the remote end
Oct 21, 2016 10:14:12 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Falling back to straight W3C remote end connection
Oct 21, 2016 10:14:12 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Falling back to original OSS JSON Wire Protocol.
Exception in thread "main" org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session. desired capabilities = Capabilities [{ensureCleanSession=true, browserName=internet explorer, version=, platform=WINDOWS}], required capabilities = null
Build info: version: 'unknown', revision: '3169782', time: '2016-09-29 10:24:50 -0700'
System info: host: 'BWT12654001', ip: '10.52.132.157', os.name: 'Windows Server 2008 R2', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_101'
Driver info: driver.version: InternetExplorerDriver
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:80)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:141)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:602)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:242)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:228)
at org.openqa.selenium.ie.InternetExplorerDriver.run(InternetExplorerDriver.java:180)
at org.openqa.selenium.ie.InternetExplorerDriver.<init>(InternetExplorerDriver.java:172)
at org.openqa.selenium.ie.InternetExplorerDriver.<init>(InternetExplorerDriver.java:144)
at mypackage.TestIEBrowser.main(TestIEBrowser.java:33)
Ответы
Ответ 1
Это может работать из коробки без желаемых настроек возможностей. Перейдите в раздел "Интернет" → "Безопасность", нажмите "Reset все зоны до уровня по умолчанию", и после этого установите флажок "Включить защищенный режим" для всех четырех зон.
Ответ 2
Сначала проверьте уровень масштабирования по умолчанию в Internet Explorer. Если это не 100%, выполните следующие действия:
-
Откройте Internet Explorer.
-
Нажмите Alt + X, затем нажмите "Свойства обозревателя".
-
Перейдите на вкладку "Дополнительно".
-
Установите галочку на "Reset Уровень масштабирования для новых Windows и вкладки
-
Нажмите Apply и ok.
-
Закройте и откройте окно Internet Explorer и проверьте, установлен ли по умолчанию Zoom
установлен на 100%.
После выполнения вышеуказанных шагов добавьте следующие строки в свой код:
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true);
Теперь запустите свою программу, и она должна работать.
Надеюсь, это поможет!
Ответ 3
Вопрос обсуждается на Проект Selenium на Github
Вот цитата из наиболее релевантной/содержательной части, которая помогла мне решить проблему:
Хорошей новостью является то, что похоже, что IE-драйвер в основном работает с IE11, при условии, что что (a) все зоны безопасности установлены в один и тот же режим защищенного режима и (b) расширенные Защищенный режим выключен. Обратите внимание, что стандартный реестр проверяет, что драйвер IE использует для тестирования настроек защищенного режима в IE7-10, для IE11, и мы никогда не сделал попытку проверить режим повышенной защиты, поэтому нет предупреждения (пока) если у вас нет соответствующих настроек.
Плохая новость в том, что манипуляция файлов cookie нарушена. Плохо. Если вы попытаетесь установить или извлеките файлы cookie, есть шанс, что в итоге вы получите сообщение "Невозможно получить браузер", ошибка, встречающаяся ранее. На данный момент для этого нет обходного пути.
Ответ 4
У меня была та же проблема (в моем случае Firefox):
Exception in thread "main" org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session. desired capabilities = Capabilities [{marionette=true, browserName=firefox, moz:firefoxOptions={binary=Optional.empty, args=[], legacy=null, logLevel=null, prefs={}, profile=null}, version=, platform=ANY}], required capabilities = Capabilities [{moz:firefoxOptions={binary=Optional.empty, args=[], legacy=null, logLevel=null, prefs={}, profile=null}}]
Использование драйвера Selenium 3.3.1:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.3.1</version>
</dependency>
И решил это с помощью другой версии, например 3. 4+.
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.4.0</version>
</dependency>