Size: a a a

Aerokube Support

2020 August 12

IK

Ivan Krutov in Aerokube Support
Alexey
С чем может быть проблема python+selenium, selenoid поднимается, selenoid-ui тоже, но при запуске тестов падают с ошибкой тесты

urllib3.connectionpool:connectionpool.py:749 Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f444c79df40>: Failed to establish a new connection: [Errno -2] Name or service not known')': /wd/hub/session

Инициализация драйвера

def browser(request):
   browser = request.config.getoption('--browser')
   if browser == 'firefox':
       firefox_options = webdriver.FirefoxOptions()
       firefox_options.add_argument('--start-maximized')
       firefox_options.add_argument('--no-sandbox')
       firefox_options.add_argument('window-size=1920x1080')
       firefox_options.add_argument('--disable-features=VizDisplayCompositor')
       firefox_options.add_argument('--headless')
       firefox_options.add_argument('--disable-gpu')
       driver = webdriver.Remote(
           command_executor='http://0.0.0.0:4444/wd/hub',
           desired_capabilities=DesiredCapabilities.FIREFOX,
           # options=firefox_options
           )
       yield driver
       driver.quit()
   elif browser == 'chrome':
       chrome_options = webdriver.ChromeOptions()
       chrome_options.add_argument('--start-maximized')
       chrome_options.add_argument('--no-sandbox')
       chrome_options.add_argument('window-size=1920x1080')
       chrome_options.add_argument('--disable-features=VizDisplayCompositor')
       chrome_options.add_argument('--headless')
       chrome_options.add_argument('--disable-gpu')
       driver = webdriver.Remote(
           command_executor='http://0.0.0.0:4444/wd/hub',
           desired_capabilities=DesiredCapabilities.CHROME,
           # options=chrome_options
           )
В docker-compose вот так

services:
 selenoid:
   image: "aerokube/selenoid"
   network_mode: bridge
   ports:
     - "4444:4444"
   volumes:
     - "./selenoid/browsers.json:/etc/selenoid/browsers.json"
     - "/var/run/docker.sock:/var/run/docker.sock"
     - "$PWD.:/etc/selenoid"
     - "$PWD/video:/opt/selenoid/video"
   environment:
     - OVERRIDE_VIDEO_OUTPUT_DIR=$PWD/video
     - LIMIT=10
   command: ["-conf", "/etc/selenoid/browsers.json", "-video-output-dir", "/opt/selenoid/video", "-limit", "10", "-session-delete-timeout", "10s", "-timeout", "20s"]

 selenoid-ui:
   image: "aerokube/selenoid-ui"
   network_mode: bridge
   links:
     - selenoid
   ports:
     - "8081:8080"
   command: ["--selenoid-uri", "http://selenoid:4444"]
 
 tests:
   container_name: selenium-tests
   network_mode: bridge
   build:
     context: .
     dockerfile: Dockerfile
   depends_on:
     - selenoid
     - selenoid-ui
   command: ["pytest", "--browser='chrome'", "tests.py"]
так написано же Name or service not known
источник

IK

Ivan Krutov in Aerokube Support
у вас URL указано 0.0.0.0 в качестве IP адреса и это неправильно
источник

A

Alexey in Aerokube Support
а как правильно? только начинаю въезжать в эту тему и пока многое непонятно
источник

A

Alexey in Aerokube Support
пробовал указать selenoid:4444/wd/hub в качестве адреса, но все равно такая же ошибка
источник

IK

Ivan Krutov in Aerokube Support
ну что-то типа http://localhost:4444/wd/hub или http://<ip>:4444/wd/hub
источник

IK

Ivan Krutov in Aerokube Support
зависит от того где Selenoid запущен
источник

DA

Dmitry A. D. A. D. in Aerokube Support
Dmitry A. D. A. D.
А есть у кого с ходу идея в чём может быть причина проблемы?
Если запускаю тест через дженкинс - всё отлично, работает
Если запукаю тот же тест, на той же машинке с селеноидом, но инициирую запус с идеи, а не дженкинса - тот же самый ресурс вдруг недоступен (будто сети нет)
🙄
источник

A

Alexey in Aerokube Support
Ivan Krutov
ну что-то типа http://localhost:4444/wd/hub или http://<ip>:4444/wd/hub
а как тогда узнать на каком ip запущен?
и в каком смысле где запущен селеноид? запускаю на виртуалке убунты все
источник

IK

Ivan Krutov in Aerokube Support
Alexey
а как тогда узнать на каком ip запущен?
и в каком смысле где запущен селеноид? запускаю на виртуалке убунты все
ну вот ее IP и указывайте
источник

A

Alexey in Aerokube Support
я поднялubuntu в virtualbox, там же установил селеноид и оттуда же запускаю все, или это как то влияет?
источник

IK

Ivan Krutov in Aerokube Support
нет, пробросьте порт 4444 из virtualbox и ходите в localhost:4444
источник

A

Alexey in Aerokube Support
это делать в самой virtualbox в Сеть/Проброс портов?
источник

A

Alexey in Aerokube Support
просто я пока не понимаю зачем это делается, если я все запускаю внутри виртуалки
источник

IK

Ivan Krutov in Aerokube Support
Alexey
просто я пока не понимаю зачем это делается, если я все запускаю внутри виртуалки
ну если тесты тоже внутри виртуалки, то не нужно
источник

IK

Ivan Krutov in Aerokube Support
а если тесты на хост-машине, то нужно
источник

A

Alexey in Aerokube Support
все в виртуалке, после поднятие селеноида стартует контейнер с тестами в этой же виртуалке
источник

IK

Ivan Krutov in Aerokube Support
ну тогда просто http://localhost:4444/wd/hub
источник

A

Alexey in Aerokube Support
не, все равно тоже самое получается
источник

A

Alexey in Aerokube Support
а нет, ошибка другая уже
urllib3.connectionpool:connectionpool.py:749 Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7ff1f2678d60>: Failed to establish a new connection: [Errno 111] Connection refused')': /wd/hub/session
то есть с сервисом все в порядке, но почемуто все равно сбрасывает
источник

IK

Ivan Krutov in Aerokube Support
проверьте, что Selenoid вообще запустился
источник