While doing automation on Web Applications, you may face
this kind of problem, where you are trying to find an element, but page is not
loaded fully, you may endup in NoSuchFrameException. Pagy may load slowly due
to network issues (or) application issues, to handle these kind of situations,
we need to wait until the page loaded fully (or) at least the web element we
are looking for is loaded.
WebDriver.Timeouts interface provides following methods to
set the time outs for complete page load, you can specify amount of time the
driver should wait when searching for an element if it is not immediately
present, You can specify the amount of time to wait for an asynchronous script
to finish execution before throwing an error. Following table summarizes the
methods defined in WebDriver.Timeouts interface.
Method
|
Description
|
Timeouts implicitlyWait(long time, TimeUnit unit)
|
Specifies the amount of time the driver should wait when
searching for an element if it is not immediately present. When searching for
a single element, the driver should poll the page until the element has been
found, or this timeout expires before throwing a NoSuchElementException.
|
Timeouts setScriptTimeout(long time, TimeUnit unit)
|
Sets the amount of time to wait for an asynchronous
script to finish execution before throwing an error.
|
Timeouts pageLoadTimeout(long time, TimeUnit unit)
|
Sets the amount of time to wait for a page load to
complete before throwing an error.
|
Example
WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().pageLoadTimeout(5,
TimeUnit.SECONDS);
driver.manage().timeouts().implicitlyWait(10,
TimeUnit.SECONDS);
In my next post, I am going to explain about explicit time
outs usage.
No comments:
Post a Comment