org.openqa.selenium
Interface WebElement
- All Superinterfaces:
- SearchContext
public interface WebElement
- extends SearchContext
Represents an HTML element. Generally, all interesting operations to do with interacting with a
page will be performed through this interface.
All method calls will do a freshness check to ensure that the element reference is still valid.
This essentially determines whether or not the element is still attached to the DOM. If this test
fails, then an StaleElementReferenceException
is thrown, and all
future calls to this instance will fail.
Method Summary |
void |
clear()
If this element is a text entry element, this will clear the value. |
void |
click()
Click this element. |
WebElement |
findElement(By by)
Find the first WebElement using the given method. |
java.util.List<WebElement> |
findElements(By by)
Find all elements within the current context using the given mechanism. |
java.lang.String |
getAttribute(java.lang.String name)
Get the value of a the given attribute of the element. |
java.lang.String |
getCssValue(java.lang.String propertyName)
Get the value of a given CSS property. |
Point |
getLocation()
Where on the page is the top left-hand corner of the rendered element? |
Dimension |
getSize()
What is the width and height of the rendered element? |
java.lang.String |
getTagName()
Get the tag name of this element. |
java.lang.String |
getText()
Get the visible (i.e. |
boolean |
isDisplayed()
Is this element displayed or not? This method avoids the problem of having to parse an
element's "style" attribute. |
boolean |
isEnabled()
Is the element currently enabled or not? This will generally return true for everything but
disabled input elements. |
boolean |
isSelected()
Determine whether or not this element is selected or not. |
void |
sendKeys(java.lang.CharSequence... keysToSend)
Use this method to simulate typing into an element, which may set its value. |
void |
submit()
If this current element is a form, or an element within a form, then this will be submitted to
the remote server. |
click
void click()
- Click this element. If this causes a new page to load, this method will attempt to block until
the page has loaded. At this point, you should discard all references to this element and any
further operations performed on this element will throw a StaleElementReferenceException unless
you know the element and the page will still be present. If click() causes a new page to be
loaded via an event or is done by sending a native event then the method will *not* wait for
it to be loaded and the caller should verify that a new page has been loaded.
There are some preconditions for an element to be clicked. The element must be visible and
it must have a height and width greater then 0.
- Throws:
StaleElementReferenceException
- If the element no longer exists as initially defined
submit
void submit()
- If this current element is a form, or an element within a form, then this will be submitted to
the remote server. If this causes the current page to change, then this method will block until
the new page is loaded.
- Throws:
NoSuchElementException
- If the given element is not within a form
sendKeys
void sendKeys(java.lang.CharSequence... keysToSend)
- Use this method to simulate typing into an element, which may set its value.
clear
void clear()
- If this element is a text entry element, this will clear the value. Has no effect on other
elements. Text entry elements are INPUT and TEXTAREA elements.
getTagName
java.lang.String getTagName()
- Get the tag name of this element. Not the value of the name attribute: will return
"input"
for the element <input name="foo" />
.
- Returns:
- The tag name of this element.
getAttribute
java.lang.String getAttribute(java.lang.String name)
- Get the value of a the given attribute of the element. Will return the current value, even if
this has been modified after the page has been loaded. More exactly, this method will return
the value of the given attribute, unless that attribute is not present, in which case the value
of the property with the same name is returned. If neither value is set, null is returned. The
"style" attribute is converted as best can be to a text representation with a trailing
semi-colon. The following are deemed to be "boolean" attributes, and will return either "true"
or null:
async, autofocus, autoplay, checked, compact, complete, controls, declare, defaultchecked,
defaultselected, defer, disabled, draggable, ended, formnovalidate, hidden, indeterminate,
iscontenteditable, ismap, itemscope, loop, multiple, muted, nohref, noresize, noshade,
novalidate, nowrap, open, paused, pubdate, readonly, required, reversed, scoped, seamless,
seeking, selected, spellcheck, truespeed, willvalidate
Finally, the following commonly mis-capitalized attribute/property names are evaluated as
expected:
- Parameters:
name
- The name of the attribute.
- Returns:
- The attribute's current value or null if the value is not set.
isSelected
boolean isSelected()
- Determine whether or not this element is selected or not. This operation only applies to input
elements such as checkboxes, options in a select and radio buttons.
- Returns:
- True if the element is currently selected or checked, false otherwise.
isEnabled
boolean isEnabled()
- Is the element currently enabled or not? This will generally return true for everything but
disabled input elements.
- Returns:
- True if the element is enabled, false otherwise.
getText
java.lang.String getText()
- Get the visible (i.e. not hidden by CSS) innerText of this element, including sub-elements,
without any leading or trailing whitespace.
- Returns:
- The innerText of this element.
findElements
java.util.List<WebElement> findElements(By by)
- Find all elements within the current context using the given mechanism. When using xpath be
aware that webdriver follows standard conventions: a search prefixed with "//" will search the
entire document, not just the children of this current node. Use ".//" to limit your search to
the children of this WebElement.
This method is affected by the 'implicit wait' times in force at the time of execution. When
implicitly waiting, this method will return as soon as there are more than 0 items in the
found collection, or will return an empty list if the timeout is reached.
- Specified by:
findElements
in interface SearchContext
- Parameters:
by
- The locating mechanism to use
- Returns:
- A list of all
WebElement
s, or an empty list if nothing matches. - See Also:
By
,
WebDriver.Timeouts
findElement
WebElement findElement(By by)
- Find the first
WebElement
using the given method. See the note in
findElement(By)
about finding via XPath.
This method is affected by the 'implicit wait' times in force at the time of execution.
The findElement(..) invocation will return a matching row, or try again repeatedly until
the configured timeout is reached.
findElement should not be used to look for non-present elements, use findElements(By)
and assert zero length response instead.
- Specified by:
findElement
in interface SearchContext
- Parameters:
by
- The locating mechanism
- Returns:
- The first matching element on the current context.
- Throws:
NoSuchElementException
- If no matching elements are found- See Also:
By
,
WebDriver.Timeouts
isDisplayed
boolean isDisplayed()
- Is this element displayed or not? This method avoids the problem of having to parse an
element's "style" attribute.
- Returns:
- Whether or not the element is displayed
getLocation
Point getLocation()
- Where on the page is the top left-hand corner of the rendered element?
- Returns:
- A point, containing the location of the top left-hand corner of the element
getSize
Dimension getSize()
- What is the width and height of the rendered element?
- Returns:
- The size of the element on the page.
getCssValue
java.lang.String getCssValue(java.lang.String propertyName)
- Get the value of a given CSS property. This is probably not going to return what you expect it
to unless you've already had a look at the element using something like firebug. Seriously,
even then you'll be lucky for this to work cross-browser. Color values should be returned as
hex strings, so, for example if the "background-color" property is set as "green" in the HTML
source, the returned value will be "#008000".
Note that shorthand CSS properties (e.g. background, font, border, border-top, margin,
margin-top, padding, padding-top, list-style, outline, pause, cue) are not returned,
in accordance with the
DOM CSS2 specification
- you should directly access the longhand properties (e.g. background-color) to access the
desired values.
- Returns:
- The current, computed value of the property.
Copyright © 2012. All Rights Reserved.