Не удалось создать новый удаленный сеанс

Как решить эту проблему. Раньше мой код работал, но настройки 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>