この投稿では、新しい改善点やその使用方法のベスト プラクティスを含め、Selenium 4 のさまざまな種類の待機について説明します。
Selenium 4 の待機の種類
Selenium 4 では、次の 3 つの主要なタイプの待機が提供されます。
それぞれについて詳しく見ていきましょう!
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
この例では、Selenium は要素が表示されるまで最大 10 秒待機してから、NoSuchElementException をスローします。この待機は、セッション全体を通じてすべての要素の検索に適用されます。
長所:
実装は簡単です。
単純なプロジェクトに適しています。
短所:
必要でない場合でも待機がグローバルに適用されるため、テストの実行が遅くなる可能性があります。
他の待機タイプと一緒に使用すると、予測できないテスト動作が発生する可能性があります。
コード例:
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(15)); WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("example")));
この例では、WebDriver は要素が表示されるまで最大 15 秒待機します。要素が 15 秒より前に表示される場合、待機は早期に終了します。
一般的な明示的な待機条件:
visibilityOfElementLocated()
elementToBeClickable()
presentOfElementLocated()
alertIsPresent()
長所:
高度にカスタマイズ可能で、暗黙的な待機よりも効率的です。
特定の条件が必要な場合にのみ待機します。
短所:
より多くのコードが必要となり、複雑さが増す可能性があります。
大規模なプロジェクトでは、複数の明示的な待機の管理が難しくなる可能性があります。
Wait<WebDriver> fluentWait = new FluentWait<>(driver) .withTimeout(Duration.ofSeconds(20)) .pollingEvery(Duration.ofMillis(500)) .ignoring(NoSuchElementException.class); WebElement element = fluentWait.until(driver -> driver.findElement(By.id("example")));
ここでは、WebDriver は 500 ミリ秒ごとに要素をチェックし、タイムアウトになるまで最大 20 秒待機します。この間、NoSuchElementException も無視されます。
長所:
待機の処理方法をより柔軟に制御できるようになります。
ポーリング間隔と例外処理をカスタマイズできます。
短所:
設定と理解がより複雑になる可能性があります。
過度にカスタマイズすると、コードが混乱し、保守が困難になる可能性があります。
Selenium 4 待機の改善
Selenium 4 では、特に待機の管理方法にいくつかの改善が加えられています。
構文の改善: Selenium 4 では、以前の TimeUnit の代わりにDuration が使用され、より直感的で読みやすくなりました。
相対ロケーター: 他の要素との関係で要素を待機できるようになりました (例: の左側、近くなど)。
WebDriverWait の強化: Selenium 4 の WebDriverWait クラスは、より合理化され、最新の構文で使いやすくなりました。
Selenium 4 で待機を使用するためのベスト プラクティス
暗黙的な待機の代わりに明示的な待機を使用する: 制御とパフォーマンスを向上させるには、特に複雑なシナリオでは、明示的な待機を優先します。
暗黙的待機と明示的待機の混合を避ける: 両方を使用すると、予期しない動作が発生し、待機時間が増加する可能性があります。
適切なタイムアウト値を設定する: 不必要に長い待機時間を設定しないでください。アプリケーションの動作を分析して、適切な待機時間を決定します。
動的要素に Fluent Wait を使用する: 要素が非常に動的である場合は、不必要な待機を減らすために、ポーリング間隔を指定して Fluent Wait を使用することを検討してください。
結論
Selenium 4 で待機を効果的に処理することは、安定した信頼性の高い自動テストを作成するために重要です。暗黙的、明示的、および流暢な待機をいつどのように使用するかを理解すると、テスト スイートの堅牢性を大幅に向上させることができます。 Selenium 4 の改良により、同期の問題を管理するためのさらに強力なツールが利用できるようになりました。
以上がSelenium 4 の待機について理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。