Selenium では、Web ページが完全に読み込まれたかどうかを確認することが一般的な要件です。この機能を実装する際、ユーザーは既存のソリューションで問題に遭遇することがよくあります。
汎用関数の可用性
残念ながら、Selenium には、ページが有効かどうかを直接チェックする汎用関数はありません。
ページ読み込み戦略と JavaScript Execution
コードの試行では、pageLoadTimeout と document.readyState の評価を使用しました。ただし、ページ読み込み戦略は、Selenium がページが完全に読み込まれたとみなすタイミングを制御しますが、すべての要素が存在することは保証されません。 document.readyState が「完了」するまで待機することは、HTML 構造が利用可能であることを示すだけです。
完全なページの読み込みを待機しています
確実にするには、より包括的なアプローチが必要です。すべてのページ要素が表示され、読み込まれます。
ページの読み込みStrategy
DesiredCapabilities または ChromeOptions を使用してページ読み込み戦略を「normal」に設定すると、document.readyState が「complete」になったときのキャプチャが容易になります。ただし、これでもすべてのリソースがロードされることは保証されません。
動的要素待機中
JavaScript および Ajax 呼び出しを使用する動的ページの場合、次の関数を使用して、完了を待ちます:
public void WaitForAjax2Complete() throws InterruptedException { while (true) { if ((Boolean) ((JavascriptExecutor)driver).executeScript("return jQuery.active == 0")) { break; } Thread.sleep(100); } }
予想通り条件
titleContains() や VisibilityOfElementLocated() などの ExpectedConditions で WebDriverWait を使用すると、それぞれ、ページ タイトルが表示されるか、特定の要素にアクセスできることを確認できます。
new WebDriverWait(driver, 10).until(ExpectedConditions.titleContains("partial_title_of_application_under_test"));
結論
Web ページがSelenium に完全にロードするには、ページ読み込み戦略、動的コンテンツの待機、特定の要素が使用可能であることの確認など、多面的なアプローチが必要です。独自の実装を強化するために、提供されている例とリファレンスを検討してください。
以上がSelenium で完全なページの読み込みを確実に確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。