org.openqa.selenium.support.pagefactory
Class AjaxElementLocator
java.lang.Object
org.openqa.selenium.support.pagefactory.DefaultElementLocator
org.openqa.selenium.support.pagefactory.AjaxElementLocator
- All Implemented Interfaces:
- ElementLocator
public class AjaxElementLocator
- extends DefaultElementLocator
An element locator that will wait for the specified number of seconds for an element to appear,
rather than failing instantly if it's not present. This works by polling the UI on a regular
basis. The element returned will be present on the DOM, but may not actually be visible: override
isElementUsable(WebElement)
if this is important to you.
Because this class polls the interface on a regular basis, it is strongly recommended that users
avoid locating elements by XPath.
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
timeOutInSeconds
protected final int timeOutInSeconds
AjaxElementLocator
public AjaxElementLocator(WebDriver driver,
Field field,
int timeOutInSeconds)
- Main constructor.
- Parameters:
driver
- The WebDriver to use when locating elementsfield
- The field representing this elementtimeOutInSeconds
- How long to wait for the element to appear. Measured in seconds.
AjaxElementLocator
public AjaxElementLocator(Clock clock,
WebDriver driver,
Field field,
int timeOutInSeconds)
findElement
public WebElement findElement()
- Find the element.
Will poll the interface on a regular basis until the element is present.
- Specified by:
findElement
in interface ElementLocator
- Overrides:
findElement
in class DefaultElementLocator
sleepFor
protected long sleepFor()
- By default, we sleep for 250ms between polls. You may override this method in order to change
how it sleeps.
- Returns:
- Duration to sleep in milliseconds
isElementUsable
protected boolean isElementUsable(WebElement element)
- By default, elements are considered "found" if they are in the DOM. Override this method in
order to change whether or not you consider the elemet loaded. For example, perhaps you need
the element to be displayed:
Copyright © 2013. All Rights Reserved.