Удаленный 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`.