Здравствуйте, возникает проблема с ожиданием элемента. Есть кнопка “сохранить”, которая при активации вызывает всплывающее окно с подтверждением сохранения. Окно видно 10 секунд и ещё 2 тратит на появление/исчезновение, итого 12. У меня должно пройти 7 сохранений подряд, следовательно, надо ждать, пока станет активной кнопка “Сохранить”. Использовала три варианта ожидания, ориентируясь на подсказки из Сети:
1.
Но ни один из вариантов не ждёт больше 5 секунд, через 5 секунд в консоль падает ошибка:
Искомый элемент уникален. Запуск производился под Ubuntu и Windows 10 с браузером Firefox v68.0.2 / v72.0.3 соответственно. Среда разработки - IntelliJ IDEA.
Читала на этом же форуме похожие темы, но как-то не особо помогло. На аналогичные вопросы были ответы “используйте shoulBe вместо waitUntil” и наоблорот - “используйте waitUntil вместо shouldBe”.
В shouldBe надо указывать параметры. Так как вы написали он не работает. isDisplayed() бесполезно использовать после shouldBe, если не найден элемент он кидает исключение.
Я использую всегда waitUntil, если нужно ждать больше 4 секунд.
Локатор точно правильный.
У меня этот код отрабатывает 7 раз, кнопка скрывается полностью после 2х повторений, то есть два всплывающих уведомления. Они идут со смещением вниз. Первые два повторения отрабатывают корректно, а потом кнопка скрывается за всплывающим окном и через 5 секунд код падает с ошибкой, что элемент скрыт за другим элементом и некликабелен.
Просто у меня теперь в каждой итерации ожидание по 12 секунд, подозреваю, что можно сократить до 6, т.к. у меня место для 2х всплывающих окон есть, но это уже не важно, оно работает, хвала богам, лучше это не пытаться ковырять больше…
Если вы написали что-то вроде $("#saving").shouldNot(exist), и локатор всё-таки неправильный (или когда-нибудь поменяется), то эта строчка всегда будет зелёной. А вы даже не заметите.
Я указываю уникальные данные, локатор определённо точно верный. И в поиске в инструментах разработчиков только одну строку всегда находит
Если очень грубо и условно, то структура такая:
input // рабочий, туда всё вставляется, он виден изначально
input // скрытый, при клике на него возникает ошибка, что элемент должен быть виден; таких элементов у меня 3
span // скрытая искомая кнопка с уникальным текстом внутри себя, находится ниже всех остальных элементов
Мне нужны все input, активация каждого из них. А само оно не скроллится вниз.