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

Selenide в Headless Chrome режиме не видит элементы

headless
configuration
execution
java
chrome
selenide
Теги: #<Tag:0x00007f21d5895d70> #<Tag:0x00007f21d5895c30> #<Tag:0x00007f21d5895af0> #<Tag:0x00007f21d5895988> #<Tag:0x00007f21d58957f8> #<Tag:0x00007f21d5895668>

(Seva Nardin) #1

Проблема (Вопрос) заключается …
Сделал много тестов по UI, возникла проблема с временем прохождения тестов перед выпуском релиза. В целях увеличения скорости прохождения тестов попробовали гнать тесты в Headless режиме, но они валятся с ошибкой Caused by: org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element:

Может есть какое то решение?


(Vasiliy Rakshin) #2

Удостоверьтесь что браузер запускается с нужным размером окошка.


(Seva Nardin) #3

Поставил размер 3000*2000, здесь точно будут все элементы, но не один тест не идет… ошибка та же


(Vasiliy Rakshin) #4

Вы моё сообщение ещё раз прочитайте, а.
Поставить вы поставили… а оно точно запускается с таким размером?


(Seva Nardin) #5

Может я не понял чего… установил нужное разрешение, запустил в обычном режиме все работает. Поставил скрытый режим ничего не работает. Как еще проверить, что запускается с верным разрешением?

Конфигурация для запуска:
Configuration.browserSize = “1920x1080”;
Configuration.headless = false;
Configuration.startMaximized = false;
Configuration.holdBrowserOpen = false;


(Максим Овсюк) #6

Headless работает немного по другому. Не раз замечал отличия. Основная проблема в том что нжны дополнительные вайты, хеадлесс режим быстре потому что не рендерит ничего.


(Seva Nardin) #7

есть пример ?


(Vladislav Abramov) #8

пример чего?
подождите пока страница полностью загрузится, сделайте скриншот, посмотрите что да как


(Alexandr D.) #9

Если вы хотите чтобы всё быстро пробегало, при этом был и VNC и видео-запись, то лучше использовать GGR/Selenoid, нежели чем хедлесс, с которым вечно какие-то косяки вылезают.


(Seva Nardin) #10

пример доп вайтов


(Vladislav Abramov) #11

вы пришли сюда с абстрактной ошибкой и требуете помощи

у вас код есть, который выложить можно?

ждёте ли вы, пока элемент станет кликабельным? ну или что он вообще появится


(Максим Овсюк) #12

Explicit Wait попробуйте. какой Я Вам пример могу дать если мы даже не знаем на каком ЯП проект )))


(Seva Nardin) #13

В общем выяснил проблему. Снял скриншот с упавшего теста, оказалось что в скрытом режиме пользователь не проходит аутенфикацию, на проекте используется Kerberos. Он не выдает session ticket.

Тему можно закрывать, дальше уже надо решать эту проблему. Писать шелл для chromedriver.


(Vladislav Abramov) #14

а стоило только захотеть разобраться :smirk:


(asolntsev) #15

С селенидом как раз всё это не нужно. Селенид же сам ждёт всяких таких штук.
Нет, у меня все мои тесты прекрасно взлетели в хедлесс режиме без каких-либо дополнительных действий.


(Gena) #16

Может немного не в тему. Как по мне, изначальная проблема - время прохождения тестов. Решается паралелизацией тестов или разбиением на сьюиты. Идеально - паралелизация. Данное решение упрется в тужу проблему через 3 месяца, когда будет еще +50.100 тестов.


(Seva Nardin) #17

Надо подумать над этим , но проблема в то что для каждого группы тестов создаются практически одни и те же фикстуры в БД. Как бы не вышло бы накладки.

На проекте используется JUnit5, прописал файл junit-platform.properties с настройками:
junit.jupiter.execution.parallel.enabled=true
junit.jupiter.execution.parallel.config.strategy=dynamic
Классы с тестами запускаю через аннотацию @Execution(ExecutionMode…)