Удаленный WebDriver UnreachableBrowserException: не удалось начать новый сеанс

Я получил это исключение для всех браузеров. Например, я создаю удаленный веб-драйвер на Chrome следующим образом:

caps = DesiredCapabilities.chrome();
ChromeOptions options = new ChromeOptions();
options.addArguments("disable-infobars");
caps.setCapability(ChromeOptions.CAPABILITY, options);
webDriver = new RemoteWebDriver(new URL("http://myIP:5555/wd/hub"), caps);

И я получил UnreachableBrowserException следующим образом:

org.openqa.selenium.remote.DesiredCapabilities chrome
INFO: Using `new ChromeOptions()` is preferred to `DesiredCapabilities.chrome()`

org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.

Но я проверяю свой центр селена в http://myIP:4444/grid/console, все хорошо, узел еще зарегистрирован. Затем я проверяю свой узел в http://myIP:5555/wd/hub/static/resource/hub.htmlЯ все еще могу нажать "Создать сеанс", чтобы создать сеанс для всех браузеров.

Я только что получил это исключение сегодня, оно все еще работало несколько дней назад. Я использую Selenium 3.11.0, IntelliJ 2017.3, все драйверы и браузеры имеют последние версии.

Я погуглил здесь, но я не могу найти решение для этого, пока мой гирд все еще работает. Любая помощь высоко ценится.

1 ответ

Решение

Ошибка говорит обо всем:

INFO: Using `new ChromeOptions()` is preferred to `DesiredCapabilities.chrome()`

Текущая реализация Selenium при вызове RemoteWebDriver поддерживает ChromeOptions и вы можете использовать следующий блок кода:

ChromeOptions options = new ChromeOptions();
options.addArguments("disable-infobars");
webDriver = new RemoteWebDriver(new URL("http://myIP:5555/wd/hub"), options);

Обновить

В соответствии с вашим комментарием обновление документации по seleniumhq-документация еще не обновлено. Вот соответствующие байты из примечаний к выпуску Selenium:

  • Селен v3.5.0:

    * Start making *Option classes instances of Capabilities. This allows
      the user to do:
      `WebDriver driver = new RemoteWebDriver(new InternetExplorerOptions());`
    
  • Селен v3.6.0:

    * All `*Option` classes now extend `MutableCapbilities`
      `new RemoteWebDriver(new ChromeOptions());`
    
  • Селен v3.7.0:

    * Migrated from using `DesiredCapabilities` to either
      `MutableCapabilities` or (preferably) `ImmutableCapabilities`.
    
Другие вопросы по тегам