Запуск тестов с использованием chromium и docker

Приветствую всех!
Настроил докер по статье Acceptance Testing With No Selenium or PhantomJS Installed
Но не могу понять как запустить тесты в Chromium. Может кто-то подскажет как это делается?
Сейчас при попытке запустить тесты с использованием Chromium, я получаю ошибку

[UnknownServerException]                                                                                                                                                                                                                                                      
The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information, see http://code.google.com/p/selenium/wiki/ChromeDriver. The latest version can be downloaded from http://chromedriver.storage.googleapis.com/index.htm

Неужели надо билдить свой контейнер с исправленным start.sh? @davert

конфиг

    chrome:
        modules:
            config:
                WebDriver:
                    browser: 'chromium'

У вас chromedriver должен быть виден из path. Ну и я не сильно вникал в особенности докер, но вроде и сам chromium должен стоять в докер контейнере. Но возможно я ошибаюсь.

P.S.: А зачем вообще докер тут?)

докер нужен для запуска тестов в нескольких бразуеров через тимсити агента на сервере без GUI

ну тут как - по ошибке не видно переменной. Можете установить ее из кода прямо, никто вам не мешает. Ну или изначально при старте контейнера установите.

В документации ничего не написано по поводу таких параметров. Поэтому я и спрашиваю как сделать.

Прежде чем приступать к работе с webdriver'ом, начинать надо с изучения официальных источников.

Я работаю не напрямую с webdriver, а через codeception. И в официальной документации об этом ничего не сказано. Как запустить тесты локально с GUI в Chrome я прекрасно знаю. Но меня интересует совершенно другое.

А какая разница - codeception это или что-то другое? Взаимодействие с браузером происходит по webdriver wire протоколу. Хром из коробки пока не предоставляет такой возможности, потому группой активистов был написан хак в виде стендэлоун сервера - chromedriver, который собственно и реализует этот протокол для хрома.

1 лайк

По-моему, вы не до конца поняли мой изначальный вопрос.

Все ответы уже были даны выше. В официальном гайде сказано, что путь к драйверу необходимо поместить в PATH. Разве вы не можете стартануть Docker с PATH, в котором будет путь к chromedriver?

Ну Firefox можно через xvfb запускать в хэдлесс. Думаю с хромо можно тоже самое придумать :smile:

1 лайк

дак а что мешает устанавливать из кода?

А зачем?

попробуйте лучше официальные образы от команды Selenium:

кстати, ишуя по этому поводу висит аж с ноября:

Чтобы исправить ошибку))

Вот за это спасибо! :blush: