ホームページ >Java >&#&チュートリアル >クリックする前に WebDriver で要素が表示されるまで確実に待つ方法
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>));
これらのメソッドは待機条件をきめ細かく制御できるため、カスタムのスリープ ロジックが不要になります。
追加リソース:
以上がクリックする前に WebDriver で要素が表示されるまで確実に待つ方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。