Selenium-WebDriver for Java で待機間隔を効果的に処理する方法
Java Selenium-WebDriver では、待機間隔の処理は安定性を確保するために不可欠です実行をテストし、タイムアウトを回避します。 暗黙的待機と明示的待機の 2 つの主なアプローチがあります。
暗黙的待機
暗黙的待機では、デフォルトのタイムアウトが設定されます。要素の検出やページの読み込みなど、すべての WebDriver 操作に適用されます。次のコードは、暗黙的な待機を 2 秒に設定します。
<code class="java">driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);</code>
暗黙的な待機はテスト コードを簡素化しますが、指定されたタイムアウトが実際のロード時間より短い場合、不必要な待機や不安定なテストにつながる可能性があります。
明示的な待機
明示的な待機では、特定の操作のカスタム タイムアウトを指定します。これにより、より正確かつ効率的な待機が可能になります。明示的な待機の構文は次のとおりです。
<code class="java">WebDriverWait.until(condition-that-finds-the-element);</code>
推奨アプローチ
質問で説明されているようなシナリオでは、アプリケーションが UI を読み込むのに数秒かかります。
<code class="java">public WebElement fluentWait(final By locator) { Wait<WebDriver> wait = new FluentWait<WebDriver>(driver) .withTimeout(30, TimeUnit.SECONDS) .pollingEvery(5, TimeUnit.SECONDS) .ignoring(NoSuchElementException.class); WebElement foo = wait.until(new Function<WebDriver, WebElement>() { public WebElement apply(WebDriver driver) { return driver.findElement(locator); } }); return foo; };</code>
使用法:
<code class="java">WebElement textbox = fluentWait(By.id("textbox"));</code>
結論
暗黙的待機と明示的待機にはそれぞれ利点がありますが、アプリケーションの読み込み時間が予測できない、または長いシナリオでは、明示的待機の方がより優れた制御、精度、効率が得られます。 FluentWait はこのような場合に特に役立ち、カスタマイズ可能で堅牢な待機戦略を提供します。
以上が暗黙的待機と明示的待機: Selenium-WebDriver での読み込み時間の処理にはどちらが最適ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。