ホームページ >Java >&#&チュートリアル >Selenium WebDriver の暗黙的待機と明示的待機: どちらを選択する必要がありますか?

Selenium WebDriver の暗黙的待機と明示的待機: どちらを選択する必要がありますか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-02 21:37:30825ブラウズ

Implicit vs. Explicit Wait in Selenium WebDriver: Which Should You Choose?

Selenium-WebDriver: 暗黙的待機と明示的待機、どちらが優れていますか?

Java Selenium-WebDriver では、アプリケーションのロードに時間がかかるシナリオが発生する場合があります。ユーザー インターフェイスが原因となり、要素の場所のエラーが発生します。これに対処するには、暗黙的待機と明示的待機という 2 つの待機オプションがあります。

暗黙的待機:

コード スニペットで示されているように、暗黙的待機を 2 に設定します。秒:

<code class="java">driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);</code>

これは、ドライバーがエラーを発生させる前に、要素が使用可能になるまで最大 2 秒待機することを意味します。

明示的な待機:

明示的な待機では、ドライバーが続行する前に特定の条件が満たされる必要があります。 WebDriverWait.until メソッドは、この目的に使用できます。

<code class="java">WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement textbox = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("textbox")));</code>

ここで、ドライバーは続行する前に、ID「textbox」の要素が表示されるまで最大 10 秒待機します。

どちらが良いですか?

暗黙的待機と明示的待機の選択は状況によって異なります:

  • 明示的待機:特定の条件を確認する必要があり、不必要に時間を無駄にしないようにしたい場合。
  • 暗黙的待機: 暗黙的待機シナリオのバックアップとして役立ちますが、長時間待機する場合には理想的ではありません。

推奨事項:

あなたのような状況で、特定の時間枠内で要素の存在が保証されない場合は、明示的な待機、特に次のような流暢な待機を使用します。回答で提供されているものが推奨されます。

<code class="java">public WebElement fluentWait(final By locator) {
    // Fluent wait implementation provided in the answer...
}

WebElement textbox = fluentWait(By.id("textbox"));</code>

流暢な待機により、タイムアウトとポーリング間隔をカスタマイズできるため、柔軟性が高まり、不必要な遅延が防止されます。

以上がSelenium WebDriver の暗黙的待機と明示的待機: どちらを選択する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。