t.me/atinfo_chat Telegram группа по автоматизации тестирования

Миграция Selenium тестов с windows в testcontainers

Теги: #<Tag:0x00007f74892bf098> #<Tag:0x00007f74892befd0> #<Tag:0x00007f74892beee0> #<Tag:0x00007f74892bee18> #<Tag:0x00007f74892bed28>

Есть задача запускать selenium тесты в linux-based docker контейнерах.
Столкнулись с проблемой, что старые тесты запускаются на windows машине в firefox, причем стартуют они firefox.exe напрямую и к тому же версия FF далеко не последняя - 45.

Посмотрели в сторону testcontainers. Запускаем тесты в BrowserWebDriverContainer с модифицированным selenium/standalone-firefox-debug image, чтоб увеличить default resolution
на подобии:
FROM selenium/standalone-firefox-debug:3.141.59
ENV SCREEN_HEIGHT=1080
ENV SCREEN_WIDTH=1920
ENV SCREEN_DEPTH=24

Старий framework рабочий, тести проходят, но те же тесты в новом окружении (docker+linux-based selenium/standalone-firefox-debug) не проходят либо из-за ElementNotFoundException, либоMoveTargetOutOfBoundsException(много drag&drop функциональности).

Собственно вопроси:

  1. Есть ли какое-то отличие в рендеринге под разними OS?
  2. Как с минимальным рефакторингом мигрировать в докер, чтоб не переписывать все locators?

Спасибо :blush:

вы для начала запустите эти тесты на Винде на последнем файрфоксе локально и посмотрите, что происходит

там же и версия гекодрайвера другая, и методы могут по другому работать

так что вам по шагам надо миграцию проводить

  1. свежий браузер
  2. другая ось
  3. запуск в контейнере

тут вы правы, спасибо, оно не работает на последнем файрфоксе с последним geckodriver-v0.26.0-win64. По большому счету те же ошибки, что и в контейнере. Надо локаторы переписывать.