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 サイトの他の関連記事を参照してください。