ホームページ > Java > &#&チュートリアル > WebDriverWait は Java を使用した Selenium WebDriver での要素の待機をどのように改善できますか?

WebDriverWait は Java を使用した Selenium WebDriver での要素の待機をどのように改善できますか?

Susan Sarandon
リリース: 2024-11-28 22:10:12
オリジナル
457 人が閲覧しました

How Can WebDriverWait Improve Element Waiting in Selenium WebDriver with Java?

WebDriver: Java を使用した要素の待機

はじめに

自動テストでは、要素を操作する前に、要素が存在し、表示されていることを確認することが重要です。この記事では、暗黙的な待機を使用するときに直面する課題を検討し、要素が表示されるのを明示的に待機するための代替アプローチを紹介します。

暗黙的な待機

当初、暗黙的な待機が使用されていました。要素の待機の問題を処理するには:

driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
driver.findElement(By.id(prop.getProperty(vName))).click();
ログイン後にコピー

ただし、暗黙的な待機には制限があります。指定されたタイムアウト内に要素が出現するのを待ちますが、要素が見つからない場合は検索を継続し、待ち時間が長くなる可能性があります。

明示的な待機

これらの制限に対処するために、明示的な待機戦略を使用できます。 1 つのアプローチには、タイミング ループの使用が含まれます。

for (int second = 0;; second++) {
    Thread.sleep(sleepTime);
    if (second >= 10)
        fail("timeout : " + vName);
    try {
        if (driver.findElement(By.id(prop.getProperty(vName))).isDisplayed())
            break;
    } catch (Exception e) {...}
}
driver.findElement(By.id(prop.getProperty(vName))).click();
ログイン後にコピー

このアプローチでは待機時間を明示的に制御できますが、煩雑で競合状態の影響を受けやすい可能性があります。

WebDriverWait

より堅牢で効率的なアプローチは、WebDriverWait を使用することです。 class:

WebDriverWait wait = new WebDriverWait(webDriver, timeoutInSeconds);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id<locator>));
ログイン後にコピー

WebDriverWait クラスは、要素が表示される、クリック可能になる、または存在するのを待機するなど、さまざまな待機シナリオ用のメソッドを提供します。指定されたタイムアウトを一貫して待機し、条件が満たされない場合は例外をスローするため、テスト実行の信頼性が高まり、不安定さが軽減されます。

結論

を使用した明示的な待機戦略WebDriverWait は、自動テストにおける要素の存在と可視性を処理するための信頼性が高く効果的なアプローチです。これらは、暗黙的な待機やタイミングループと比較して、より詳細な制御を提供し、テストの堅牢性を強化し、潜在的な待機の問題を軽減します。

以上がWebDriverWait は Java を使用した Selenium WebDriver での要素の待機をどのように改善できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート