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