Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Падают тесты на Ubuntu+Chrome в связке с Xvfb

ubuntu
xvfb
maven
webdriver
java
chrome
Теги: #<Tag:0x00007f7b6277cb00> #<Tag:0x00007f7b6277c9c0> #<Tag:0x00007f7b6277c880> #<Tag:0x00007f7b6277c718> #<Tag:0x00007f7b6277c5b0> #<Tag:0x00007f7b6277c448>

(Nikolai) #1

Добрый день. Подскажите, чем может быть вызвано следующее:
Запускаю тесты на Ubuntu+Chrome
При запуске на мониторе, тест проходит успешно. Включаю через Xvfb, часть тестов валится с ошибками “вебэлемент не найден”.
При этом часть тестов работает стабильно. Под Виндой все работает.
Элементы ищу по xpath.
Уже несколько раз все по разному переписал, пальцы об клавиатуру стер.
Вейты стоят, разрешение 1920х1080. На живом мониторе тест проходит.

Заранее спасибо.


(Yaroslav Pernerovskyy) #2

Скриншоты снимаете при падении? Как выглядят?


(Nikolai) #3

Только что научился снимать скриншоты :slight_smile:
Собственно скрин снялся в разрешении 972968 и взял левую верхнюю половину дисплея, когда разрешение должно быть 19201080.


(Yaroslav Pernerovskyy) #4

Возможно в этом и заключается проблема ) Попробуйте покрутить настройки Xvfb. К сожалению, под рукой нет работающей конфигурации что-бы показать пример, но, кажется, даже тут на форуме, этот вопрос уже не раз поднимался.

П.С. возможно еще, что у хрома не отрабатывает driver.manage().window().maximize() когда он под Xvfb. Погуглите в эту сторону тоже.


(Nikolai) #5

Запускаю с настройками $ Xvfb -ac :67 -screen 0 1920x1080x16 &
Судя по всему driver.manage().window().maximize() не работает, т.к. есть горизонтальная и слишком большая вертикальная полоски скрола.
Спасибо большое за советы!


(Nikolai) #6

В общем на форуме оказывается уже было.
Спасибо большое что подсказали куда копать.

driver.manage().window().maximize();
при работе с Xvfb не отрабатывает!
Как указывалось в подсказке - ето старый известный баг (будь он не ладен!)

Решение:

Dimension dimension = new Dimension(1920, 1080);
driver.manage().window().setSize(dimension);