У нас есть сценарий автоматизации, который запускается в jenkins и grid в докере. Поэтому, когда мы пытаемся запустить код селена, он подключается к узлу сетки chrome или ff, а затем выполняется на основе Java-кода селена.
Все это происходит на Linux-сервере, где установлен докер, и у нас есть четыре контейнера: Jenkins, Selenium grid, chrome node и ff node.
Но когда я пытаюсь запустить задание из jekins, оно терпит неудачу и выдает следующую ошибку:
runners.TestRunner > Scenario: Extract the Report.classMethod FAILED
org.openqa.selenium.remote.UnreachableBrowserException
Caused by: java.net.NoRouteToHostException
org.openqa.selenium.remote.UnreachableBrowserException
Caused by: java.net.NoRouteToHostException
org.openqa.selenium.remote.UnreachableBrowserException
Caused by: java.net.NoRouteToHostException
Теперь то же самое работает, когда я не запускаю это из настроенного докера и делаю это из IntelliJ.
private WebDriver createSTAGEDriver() throws MalformedURLException {
switch (driverType) {
case GridChrome :
DesiredCapabilities cap = DesiredCapabilities.chrome();
cap.setCapability(CapabilityType.UNEXPECTED_ALERT_BEHAVIOUR, UnexpectedAlertBehaviour.IGNORE);
driver = new RemoteWebDriver(new URL("http://xx.xx.xxx.xxxx:xxxxx/wd/hub"),cap);
break;
Не удалось разобраться в проблеме.
Любая помощь будет очень признательна.


Это исправлено,
Фактически вместо IP в функции createSTAGEDriver мне нужно указать имя ip, которое было определено в моем файле docker .yml
version: '2'
services:
hub:
restart: always
image: selenium/hub:3.14
ports:
- "4444:4444"
networks:
- "selenium-grid_default"
firefox:
restart: always
image: selenium/node-firefox:3.5
environment:
- HUB_PORT_4444_TCP_ADDR=hub
- HUB_PORT_4444_TCP_PORT=4444
- NODE_MAX_INSTANCES=2
- NODE_MAX_SESSION=2
links:
- "hub"
поэтому в основном вместо ip мне нужно использовать этот концентратор, который определен в ссылках.