Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Ожидание элемента в selenide, через ShouldBe

syntax-sugar
java
selenide
webdriver
Теги: #<Tag:0x00007fedb7593290> #<Tag:0x00007fedb7593150> #<Tag:0x00007fedb7592fe8> #<Tag:0x00007fedb7592ea8>

(Mash Krs) #1

Привет.
Такая проблема:
Есть список элементов, по нажатию на один из них появляется форма с input.
Обращаемся к input по name, сначала очищаем поле и записываем значение:
$(byName(“name”)).shouldBe(Condition.visible).clear(); $(byName(“name”)).setValue(“qwerty5”);

Проблема в том что когда нажимаем на элемент,через какое то время появляется форма с input и тест падает,пишет что элемент не виден.Но если в начале теста поставить sleep 4 секунды, то все работает.


(Остап Олексин) #2

Попробуйте вместо shouldBe использовать метод waitUntil и передать в него нужное время ожидания.


(Vladyslav Lopatynskyi) #3
  1. По дефолту у Селенида, таймаут 4 секунды. Его можно переопределить глобально через Configuration . Единственная разница между shouldBe и waitUntil в том, что waituntil принимает второй аргумент который может переопределить таймаут на кастомный. То есть если Вам не хватает только вот для этого элемента пары секунд для вейта. WaitUntil то что Вам нужно.
  2. Если Вы не меняли никакие конфигурации селенида (fastValue), то setValue по дефолту вызовет clear(), поэтому рекомендую оставить только setValue.

(Mash Krs) #4

Спасибо, с waintUntil сработало!