Selenium: Web ページの読み込み完了の確認
多くの開発者は、シームレスで正確なテストを行うために、Selenium で Web ページの読み込みが完了したかどうかを検証しようと努めています。 。ただし、明示的な要素の可視性チェックとは異なり、ページの読み込みの完了を確認する既製の汎用関数はありません。
試したコード
次のコードでチェックしようとしました:
new WebDriverWait(firefoxDriver, pageLoadTimeout).until( webDriver -> ((JavascriptExecutor) webDriver).executeScript("return document.readyState").equals("complete"));
しかし、ご覧のとおり、このアプローチには
PageLoadStrategy
pageLoadStrategy を「normal」に設定して、「document.readyState」が「complete」に等しいことを確認できますが、これは確実ではありません。 JavaScript と Ajax の呼び出しがまだ未処理である可能性があるため、さらなる対策が必要です。
無期限の待機
「jQuery.active == 0」を待機するか、titleContains で WebDriverWait を使用するなどのアプローチ() は無限の待機時間を伴います。
可視要素Waits
詳細な方法は、visibilityOfElementLocated() で WebDriverWait を使用することです。これにより、プログラムは目的の要素が表示されるまで待機するようになり、要素が完全にロードされたことをより正確にチェックできます。
追加の参考情報
詳細については、以下を参照してください。これらのリソース:
結論
Selenium にはページ読み込みの完了を確認する汎用関数はありませんがPageLoadStrategy、「jQuery.active == 0」、無期限の待機など、説明した手法を採用することで、表示要素が待機するため、ページ読み込みの進行状況を効果的に評価できます。
以上がSelenium で Web ページの読み込み完了を確実に確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。