Čakanie na načítanie stránky v programe Selenium

Ako prinútiť Selenium 2.0 čakať na načítanie stránky?

Použitie triedy WebDriverWait

Pozri tiež tu

Môžete očakávať, že sa zobrazí nejaký prvok. niečo ako v 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"));
Komentáre (7)

Vo všeobecnosti by mal webový ovládač Selenium 2.0 vrátiť riadenie volajúcemu kódu až po tom, ako zistí, že sa stránka načítala. Ak sa tak nestane, môžete zavolať waitforelemement, ktorý cyklicky volá findelement, kým sa nenájde alebo kým sa nevyčerpá (časový limit možno nastaviť).

Komentáre (6)

Ak chcete počkať na načítanie konkrétneho prvku, môžete použiť metódu isDisplayed() na prvku RenderedWebElement :

// 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;
    }
}

(Príklad z Príručka pre začínajúcich používateľov 5 minút)

Komentáre (2)