Selenium WebDriver: Poczekaj na załadowanie złożonej strony z JavaScriptem
Mam aplikację internetową do przetestowania z Selenium. Podczas ładowania strony jest dużo JavaScript.
Ten kod JavaScript nie jest tak dobrze napisany, ale nic nie mogę zmienić. Tak więc czekam na pojawienie się elementu w DOMfindElement()
metoda nie wchodzi w grę.
Chcę utworzyć ogólną funkcję w Javie, aby poczekać na załadowanie strony, możliwe rozwiązanie to:
document.body.innerHTML
w zmiennej łańcuchowejbody
.porównajbody
zmienna do poprzedniej wersjibody
. jeśli są takie same, ustaw przyrost licznikanotChangedCount
inaczej ustawionynotChangedCount
do zera.poczekaj chwilę (na przykład 50 ms).jeśli strona nie zmieniła się przez jakiś czas (na przykład 500 ms), taknotChangedCount >= 10
następnie zamknij pętlę w przeciwnym razie do pierwszego kroku.Czy uważasz, że to poprawne rozwiązanie?