クラスWebDriverWaitを使用します。
また、こちらもご覧ください。
C#のような要素が表示されることが期待できます。
WebDriver _driver = new WebDriver();
WebDriverWait _wait = new WebDriverWait(_driver, new TimeSpan(0, 1, 0));
_wait.Until(d => d.FindElement(By.Id("Id_Your_UIElement"));
一般的にSelenium 2.0では、Webドライバはページが読み込まれたと判断した場合にのみ、呼び出したコードに制御を返すべきです。そうでない場合は、waitforelemement
を呼び出すことができます。waitforelemement
は、findelement
が見つかるかタイムアウトするまで、呼び出しを繰り返します(タイムアウトは設定可能です)。
特定の要素がロードされるのを待ちたい場合は、RenderedWebElement
の isDisplayed()
メソッドを使うことができます。
// Sleep until the div we want is visible or 5 seconds is over
long end = System.currentTimeMillis() + 5000;
while (System.currentTimeMillis() < end) {
// Browsers which render content (such as Firefox and IE) return "RenderedWebElements"
RenderedWebElement resultsDiv = (RenderedWebElement) driver.findElement(By.className("gac_m"));
// If results have been returned, the results are displayed in a drop down.
if (resultsDiv.isDisplayed()) {
break;
}
}
(例:5分でわかる入門ガイドより)