Испытания капибары против Zalenium не могут найти изображения
Я работал над использованием Zalenium для проведения наших тестов на капибару.
Тесты запускаются, но я не могу загрузить изображения для тестирования загрузки изображений.
Я смонтировал папку с изображениями в контейнерах Zalenium и проверил, есть ли там изображения, но я получаю сообщение об ошибке "файл не найден" при использовании пути к изображениям в контейнерах.
Конфигурация Zalenium:
docker run --rm -ti --name zalenium -p 4444:4444 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /tmp/videos:/home/seluser/videos \
-v desktop/testdata/:/tmp/node/home/seluser/data \
--privileged dosel/zalenium start \
--desiredContainers 4 \
--maxDockerSeleniumContainers 8
Конфигурация браузера:
when :chromeGrid
Capybara.register_driver :chrome do |app|
Capybara::Selenium::Driver.new(app, :browser => :remote, url: "http://localhost:4444/wd/hub", desired_capabilities: Selenium::WebDriver::Remote::Capabilities.chrome)
end
2 ответа
Какой путь вы используете в своих тестах?
Я предполагаю, что изображения для теста размещены на хост-компьютере в desktop/testdata/
, Но тест должен искать их в /home/seluser/data
, поскольку это папка, доступная в контейнере.
При использовании Capybara с удаленным драйвером Selenium самый простой способ справиться с этим - сохранить изображения на машине, на которой выполняются тесты, установить file_detector
в селене и разрешите ему автоматически отправлять изображения на компьютер с удаленным браузером - https://github.com/SeleniumHQ/selenium/blob/master/rb/lib/selenium/webdriver/common/driver_extensions/uploads_files.rb#L37 - https://github.com/SeleniumHQ/selenium/blob/master/rb/lib/selenium/webdriver/remote/oss/bridge.rb#L365