У меня есть веб-приложение для тестирования с Selenium. При загрузке страницы выполняется много JavaScript.
Этот код JavaScript не так хорошо написан, но я ничего не могу изменить. Поэтому ждать появления элемента в DOM с findElement()
метода findElement()
нельзя.
Я хочу создать универсальную функцию в Java, чтобы ждать загрузки страницы, возможное решение будет:
- запустите скрипт JavaScript из WebDriver и сохраните результат
document.body.innerHTML
вbody
строковой переменной. - сравните переменную
body
с предыдущей версиейbody
. если они одинаковы, установите инкремент счетчикаnotChangedCount
противном случае установитеnotChangedCount
в ноль. - подождите немного (например, 50 мс).
- если страница не изменялась в течение некоторого времени (например, 500 мс), поэтому
notChangedCount >= 10
тогда выйдите из цикла, в противном случаеnotChangedCount >= 10
к первому шагу.
Как вы думаете, это правильное решение?