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
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