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,
java.lang.reflect.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,
java.lang.reflect.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 © 2010. All Rights Reserved.