Доброго времени суток. Столкнулся с такой проблемой. В рамках теста на странице сайта открывается изображение. Открывается - в смысле разворачивается и имеет на рамке кнопку [close]
, либо закрывается после клика в не области изображения. И вот суть проблемы.
При развернутом изображении страница сайта неактивно, а анимация "закрытие" картинки занимается какое-то время. То есть по сути нажатие на [close]
уже отработала, а работать дальше с сайтом еще нельзя и тест падает.
Сам я выкрутился их ситуации с помощью Thread.sleep();
но понимаю что это не решение проблемы. Может кто подскажет что-то более элегантное?
Так же пробовал решить проблему так:
public void waitForCloseImg(){
wait.until(ExpectedConditions.presenceOfElementLocated(By.()));
}
Но какого события мне ждать?
Все правильно думаете, лучшая практика в таких случаях - это явные ожидания. Для попап элементов лучше использовать состояния, связанные с видимостью или кликабельностью элементов. Не достаточно просто проверить, что элемент есть или нет в DOM, так как он может быть невидимым. Изучите модуль ExpectedConditions, думаю найдете там много полезных классов.
Для ожидания появления и исчезания всплывающего окна используем соответственно:
ExpectedCondition.visibilityOfElementLocated(By locator)
ExpectedCondition.invisibilityOfElementLocated(By locator)
Что касается ожидания именно загрузки изображения, то нужна ли вам фактическая загрузка? На тесты же никто смотреть не будет, т.е. можно просто проверить, что появился элемент img с правильным атрибутом scr (или другой элемент с правильным классом, если картинка идет как бэкграунд)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Мне нужно чтоб браузер изменил свои масштаб ( zoom in/out ), пытаюсь это организовать следующими метода, но ни один из них не работаетПрошу помогите
Есть класс(Example) который реализует интерфейс Serializable
Есть класс Test, потомок ThreadКак мне настроить log4j2 что бы для каждого потока Test создавался свой лог файл