Главная | RU | EN

Доступ к Selenoid и конфигурации

ВНИМАНИЕ! У меня не получилось поднять Selenoid на Windows 10 c Docker Desktop (версия Docker Engine 26.1.4; после обновления до версии 28.1.5 всё заработало) и на MacBook с чипом M1 (Apple Silicon), хотя на Мак есть костыль (ссылка), но он работает только для Chrome версии 91. Удалось запустить только на Linux (Ubuntu; вероятно, заработает и на других дистрибутивах Linux) и на Windows 11. Ну и на более свежих MacBook'ах.

Типичные ошибки при настройке Selenoid и запуске автотестов

  1. Не скачаны образы браузеров указанные в файле browsers.json.
    • Selenoid не загружает образы браузеров автоматически, соответственно тесты не стартуют из-за отсутствия образа. Необходимо скачать вручную образы браузеров, указанные в файле browsers.json.
  2. Есть синтаксические ошибки в browsers.json.
    • Для браузеров "chrome" и "opera" ключ path в файле browsers.json должен быть "/", а не "/wd/hub". Для браузера "firefox" ключ остается "/wd/hub". Будьте с этим внимательны, иначе браузер не стартанет.
    • Опечатки в названии образа/тега версии браузера в файле browsers.json (часто бывает путаница в расположении нижнего_подчеркивания или двоеточия при указании версии образа, чат гпт этим грешит). Например, вместо selenoid/vnc_chrome:128.0 написано selenoid/vnc_chrome_128.0.
  3. Ошибки путей в файле docker-compose.yml (volumes).
    • Из-за неверных путей Selenoid не видит файл browsers.json, UI не коннектится к Selenoid, и не пишутся видео. Проверьте монтирование каталогов (пути, указанные как volumes) - это частая ошибка.
  4. Видео не пишется, так как запись видео настроена неправильно.
    • По сути в docker-compose.yml нужно просто добавить переменную окружения с абсолютным путём до папки video:
      environment:
        OVERRIDE_VIDEO_OUTPUT_DIR: /root/selenoid_with_video/video
      Здесь нельзя использовать ${PWD} или ./video - требуется именно абсолютный путь! Подробнее об этом можно почитать в их официальной доке: aerokube.com/selenoid … video_recording.
    • Плюс часто забывают заранее скачать образ рекордера (Selenoid сам его не скачает и видеозапись не будет работать): docker pull selenoid/video-recorder:latest-release. Добавлять этот образ в docker-compose.yml не нужно, он запустится автоматически, главное просто скачать его один раз.
    • В тестах нельзя использовать headless-режим:
      Configuration.headless = true;
      Значение следует удалить полностью или заменить на
      Configuration.headless = false;
      Если нет экрана, записывать нечего.
  5. Проблемы на Windows 10 (версия Docker Engine 26.1.4; после обновления до версии 28.1.5 всё заработало) и Mac с чипом M1.
    • Контейнеры поднимаются, но браузер стартует и сразу падает. Если используете Windows, то обновите докер; для Mac существуют костыльные варианты только для Chrome версии 91 ( ссылка). Рекомендация - использовать Linux-хост или VM/VPS (например, Ubuntu Server 22.04, ≥10 GB диска, ≥2 GB RAM), свежий MacBook или Windows 11.
  6. Частая ошибка: Неверный IP-адрес тестируемого приложения в тестах.
    • В контейнере нельзя использовать localhost для обращения к приложению, запущенному вне контейнера - указывайте реальный IP-адрес хоста.
      Пример правильно:
      Configuration.baseUrl = "http://192.168.0.127:3000";
      Пример неправильно:
      Configuration.baseUrl = "http://localhost:3000";
      Тут обязательно должен быть IP-адрес, а не localhost, так как данный URL подставляется в адресную строку браузера, открытого в контейнере Docker, и если указать localhost, то контейнер будет думать, что приложение запущено тоже внутри этого же самого контейнера, а оно запущено не в нём.
  7. Проверка браузеров вручную в UI.
    • И вообще после установки Selenoid, Selenoid UI и скачивания образов браузеров нужно убедиться, что браузеры просто открываются хотя бы вручную, чтобы потом, если что-то не заработает, понять - дело в тестах или в конфигурации Selenoid. Для этого после запуска Selenoid (docker-compose up -d) зайдите на его IP-адрес:8080, сверху справа должно быть 2 надписи CONNECTED, затем перейдите во вкладку CAPABILITIES, выберите браузер из выпадающего списка (если списка нет, то проблема в browsers.json или в пути к нему) и запустите его вручную. Должно появиться окно браузера. Если появилось - поздравляю, Selenoid настроен; теперь главное - правильно всё прописать в самих тестах.