Если вы знаете локатор этого элемента - используйте цикл while, который содержит findElement()
и ловит NoSuchElementException
.Если элемент отсутствует, вы поймаете исключение, сделаете паузу на некоторое время (хотя sleep
) и начнете новый цикл цикла.Если исключение не выброшено, элемент присутствует;измените свою переменную while на управляющую переменную на true
и продолжайте.
Я бы посоветовал иметь счетчик, сколько раз выполнялся цикл, и, если он достигает определенного порога, - выйти из него сошибка / исключение - поэтому вы не застряли в бесконечном цикле.
Поздравляем - вы только что реализовали WebDriverWait
с presenceOfElementLocated()
ExpectedConditions.Вы можете пойти с ним (версия с ванильным селеном) или придерживаться собственного решения, которое даст вам более детальное управление и дерево решений - но потребует больше кодирования.
Если вы этого не сделаетеиметь определенный элемент, но просто хочу видеть, когда сама страница изменяется, алгоритм тот же, но: перед началом цикла, получить исходный код страницы.В его теле, получите это снова;если они разные, это ваше условие прорыва.
Хотя на этот подход будут влиять малейшие изменения на странице.