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