селен docker изображение селен / узел- chrome: диспрозий 3.11.0 работает на Chrome 66, но производное настраиваемое изображение с chrome 81 не запускает тесты - PullRequest
0 голосов
/ 15 апреля 2020

Я работаю над внедрением сетки селена docker в моем проекте. Я сталкиваюсь с проблемой при подключении с помощью определенного пользователем узла- chrome docker контейнеров узла с обновленной версией браузера. Ниже приведена подробная информация.

Среда: Windows 10 базовая машина Виртуальная машина Ubuntu 18.04 / 16.04.

Проект: Python Pytest Selenium

Тестовые примеры работают нормально при работе с селеном / концентратор: 3.11.0-диспрозий и селен / узел- chrome: 3.11.0-диспрозий. Образ был создан с помощью selenium-server-standalone-3.11.0.jar и chrome версии 66, которые загружаются из https://hub.docker.com/

Затем создается пользовательский docker изображение на основе selenium-server-standalone-3.11.0.jar и с последней версией chrome / chormedriver, т. е. 81.

Шаги для создания docker image:

Пожалуйста, обратитесь https://github.com/SeleniumHQ/docker-selenium/wiki/Building-your-own-images

•   git clone https://github.com/SeleniumHQ/docker-selenium.git
•   cd docker-selenium
•   git checkout tags/3.11.0-dysprosium
•   make generate_all
•   sudo docker build -t selenium/node-chrome:1.2 --build-arg CHROME_DRIVER_VERSION=81.0.4044.69 --build-arg CHROME_VERSION=google-chrome-stable=81.0.4044.92-1 NodeChrome

После создания образа я использую этот локальный образ в docker -компонентном файле.

Концентратор и узел успешно запущен, сеанс chrome также создан, но тест python + pytest зависает.

[1586871890.350][SEVERE]: bind() failed: Cannot assign requested address (99)  [Based on the googling, actually this error should not be a stopper to test run, but mentioning it here]

“13:44:50.256 INFO [ActiveSessionFactory.lambda$apply$11] - Matched factory org.openqa.selenium.remote.server.ServicedSession$Factory (provider: org.openqa.selenium.chrome.ChromeDriverService)
Starting ChromeDriver 81.0.4044.69 (6813546031a4bc83f717a2ef7cd4ac6ec1199132-refs/branch-heads/4044@{#776}) on port 17653
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
[1586871890.350][SEVERE]: bind() failed: Cannot assign requested address (99)
13:44:50.850 INFO [ProtocolHandshake.createSession] - Detected dialect: W3C
13:44:50.927 INFO [RemoteSession$Factory.lambda$performHandshake$0] - Started new session 98b823ca35a6d3cc17e666b7911551c4 (org.openqa.selenium.chrome.ChromeDriverService)”

Тот же тестовый проход при запуске через автономный серверный узел и концентратор (без docker) и тест выполнялся на chrome версии браузера 80+. Обратите внимание, что код проекта еще не обновлен для работы с более высокой версией на selenium-server-standalone.

Docker -compose.yml

services:
  selenium-hub:
    image: selenium/hub:3.11.0-dysprosium
    container_name: selenium-hub
    ports: 
     - "4444:4444"
    environment:
      - GRID_DEBUG=true
  chrome:
    image: selenium/node-chrome:1.2
    depends_on:
      - selenium-hub
    ports: 
     - 9901:9500
     - 5555:5555
    expose: 
      - "9515"
      - "5555"
    environment:
      - GRID_DEBUG=true
      - HUB_HOST=selenium-hub
      - HUB_PORT=4444
      - NODE_BROWSER_NAME=chrome
      - NODE_SELENIUM_PROTOCOL=WebDriver
      - DBUS_SESSION_BUS_ADDRESS=/dev/null
      - NODE_MAX_INSTANCES=2
      - NODE_MAX_SESSION=2
      - VNC_NO_PASSWORD=1
    volumes:
      - /dev/shm:/dev/shm
    links:
      - selenium-hub
    privileged: true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...