Wednesday, June 22, 2016

[TIPS] Wait for Page Load in Selenium Webdriver

Selenium WebDriver supports implicit wait (applies on findElement and findElements) and explicit wait (works with some explicit condition specified by automation tester on page element. Check Selenium 2 library for more details).

Using selenium WebDriver with Java script we can wait for Page load condition.

I created below method under my UIAction class which I re-used.
public boolean waitForPageLoad(long seconds) {
try {
new WebDriverWait(driver, seconds).until(new ExpectedCondition<Boolean>() {
@Override
public Boolean apply(WebDriver wdriver) {
return ((JavascriptExecutor) driver).executeScript("return document.readystate").equals("complete");
}
});
return true;
} catch (Exception e) {
System.out.println("Method waitForPageLoad: Exception " + e.getMessage());
return false;
}
}

Now above code executed JavaScript code "document.readystate" which return following 5 string values:
uninitialized - page loading not yet started
loading - page loding inprogress
loaded - page loaded
interactive - user can intereact with fields
complete - page fully loaded

No comments:

Post a Comment