Испытания капибары против 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

Другие вопросы по тегам