ホームページ >Java >&#&チュートリアル >クリックする前に WebDriver で要素が表示されるまで確実に待つ方法

クリックする前に WebDriver で要素が表示されるまで確実に待つ方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-27 05:58:10299ブラウズ

How to Reliably Wait for Element Visibility in WebDriver Before Clicking?

WebDriver: 要素の存在を待機しています

質問: 要素が表示されるまで確実に待機するにはどうすればよいですか?それをクリックしますか?暗黙的な待機だけでは矛盾しているように見えます。

これに対処するには、暗黙的な待機を使用できます。ただし、より信頼性の高い解決策は次のとおりです。

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) {
        writeToExcel("data.xls", e.toString(), parameters.currentTestRow, 46);
    }
}
driver.findElement(By.id(prop.getProperty(vName))).click();

このコードは、要素が表示されるか、タイムアウト値に達するまで待機します。ただし、ユーザーが待機時間を定義する必要があるため、不便な場合があります。

回答: WebDriver の明示的な待機機能を利用して、要素の存在を確実に待機します。

次のコードは、推奨されるアプローチを示しています。

WebDriverWait wait = new WebDriverWait(webDriver, timeoutInSeconds);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id<locator>));

あるいは、次のこともできます。 use:

wait.until(ExpectedConditions.elementToBeClickable(By.id<locator>));

これらのメソッドは待機条件をきめ細かく制御できるため、カスタムのスリープ ロジックが不要になります。

追加リソース:

  • [ExpectedConditions](https://seleniumhq.github.io/selenium/javadoc/3.141.59/org/openqa/selenium/support/ui/ExpectedCondit ions.html)
  • [WebDriverWait](https://seleniumhq.github.io/selenium/javadoc/3.141.59/org/openqa/selenium/support/ui/WebDriverWait.html)

以上がクリックする前に WebDriver で要素が表示されるまで確実に待つ方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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