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