Class Index | File Index

Classes


Class webdriver.WebElement


Extends .

Defined in: webdriver.js.

Class Summary
Constructor Attributes Constructor Name and Description
 
webdriver.WebElement(driver, id)
Represents a DOM element.
Field Summary
Field Attributes Field Name and Description
<static>  
webdriver.WebElement.ELEMENT_KEY
The property key used in the wire protocol to indicate that a JSON object contains the ID of a WebElement.
Method Summary
Method Attributes Method Name and Description
 
Schedules a command to clear the {@code value} of this element.
 
Schedules a command to click on this element.
<static>  
webdriver.WebElement.equals(a, b)
Compares to WebElements for equality.
 
findElement(locator, var_args)
Schedule a command to find a descendant of this element.
 
findElements(locator, var_args)
Schedules a command to find all of the descendants of this element that match the given search criteria.
 
getAttribute(attributeName)
Schedules a command to query for the value of the given attribute of the element.
 
getCssValue(cssStyleProperty)
Schedules a command to query for the computed style of the element represented by this instance.
 
 
Schedules a command to retrieve the inner HTML of this element.
 
Schedules a command to compute the location of this element in page space.
 
Schedules a command to retrieve the outer HTML of this element.
 
Schedules a command to compute the size of this element's bounding box, in pixels.
 
Schedules a command to query for the tag/node name of this element.
 
Get the visible (i.e.
 
Schedules a command to test whether this element is currently displayed.
 
isElementPresent(locator, var_args)
Schedules a command to test if there is at least one descendant of this element that matches the given search criteria.
 
Schedules a command to query whether the DOM element represented by this instance is enabled, as dicted by the {@code disabled} attribute.
 
Schedules a command to query whether this element is selected.
 
sendKeys(var_args)
Schedules a command to type a sequence on the DOM element represented by this instance.
 
Schedules a command to submit the form containing this element (or this element if it is a FORM element).
 
Class Detail
webdriver.WebElement(driver, id)
Represents a DOM element. WebElements can be found by searching from the document root using a {@code webdriver.WebDriver} instance, or by searching under another {@code webdriver.WebElement}:

  driver.get('http://www.google.com');
  var searchForm = driver.findElement(By.tagName('form'));
  var searchBox = searchForm.findElement(By.name('q'));
  searchBox.sendKeys('webdriver');
The WebElement is implemented as a promise for compatibility with the promise API. It will always resolve itself when its internal state has been fully resolved and commands may be issued against the element. This can be used to catch errors when an element cannot be located on the page:

  driver.findElement(By.id('not-there')).then(function(element) {
    alert('Found an element that was not expected to be there!');
  }, function(error) {
    alert('The element was not found, as expected');
  });
Parameters:
{!webdriver.WebDriver} driver
The parent WebDriver instance for this element.
{!(string|webdriver.promise.Promise)} id
Either the opaque ID for the underlying DOM element assigned by the server, or a promise that will resolve to that ID or another WebElement.
Field Detail
<static> webdriver.WebElement.ELEMENT_KEY
The property key used in the wire protocol to indicate that a JSON object contains the ID of a WebElement.
Method Detail
{!webdriver.promise.Promise} clear()
Schedules a command to clear the {@code value} of this element. This command has no effect if the underlying DOM element is neither a text INPUT element nor a TEXTAREA element.
Returns:
{!webdriver.promise.Promise} A promise that will be resolved when the element has been cleared.

{!webdriver.promise.Promise} click()
Schedules a command to click on this element.
Returns:
{!webdriver.promise.Promise} A promise that will be resolved when the click command has completed.

<static> {!webdriver.promise.Promise} webdriver.WebElement.equals(a, b)
Compares to WebElements for equality.
Parameters:
{!webdriver.WebElement} a
A WebElement.
{!webdriver.WebElement} b
A WebElement.
Returns:
{!webdriver.promise.Promise} A promise that will be resolved to whether the two WebElements are equal.

{webdriver.WebElement} findElement(locator, var_args)
Schedule a command to find a descendant of this element. If the element cannot be found, a {@code bot.ErrorCode.NO_SUCH_ELEMENT} result will be returned by the driver. Unlike other commands, this error cannot be suppressed. In other words, scheduling a command to find an element doubles as an assert that the element is present on the page. To test whether an element is present on the page, use {@code #isElementPresent} instead.

The search criteria for find an element may either be a {@code webdriver.Locator} object, or a simple JSON object whose sole key is one of the accepted locator strategies, as defined by {@code webdriver.Locator.Strategy}. For example, the following two statements are equivalent:

var e1 = element.findElement(By.id('foo'));
var e2 = element.findElement({id:'foo'});

Note that JS locator searches cannot be restricted to a subtree. All such searches are delegated to this instance's parent WebDriver.

Parameters:
{webdriver.Locator|Object.} locator
The locator strategy to use when searching for the element.
{...} var_args
Arguments to pass to {@code WebDriver#executeScript} if using a JavaScript locator. Otherwise ignored.
Returns:
{webdriver.WebElement} A WebElement that can be used to issue commands against the located element. If the element is not found, the element will be invalidated and all scheduled commands aborted.

{!webdriver.promise.Promise} findElements(locator, var_args)
Schedules a command to find all of the descendants of this element that match the given search criteria.

Note that JS locator searches cannot be restricted to a subtree. All such searches are delegated to this instance's parent WebDriver.

Parameters:
{webdriver.Locator|Object.} locator
The locator strategy to use when searching for the elements.
{...} var_args
Arguments to pass to {@code WebDriver#executeScript} if using a JavaScript locator. Otherwise ignored.
Returns:
{!webdriver.promise.Promise} A promise that will be resolved with an array of located webdriver.WebElements.

{!webdriver.promise.Promise} getAttribute(attributeName)
Schedules a command to query for the value of the given attribute of the element. Will return the current value, even if it 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 (for example, the "value" property of a textarea element). 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:
{string} attributeName
The name of the attribute to query.
Returns:
{!webdriver.promise.Promise} A promise that will be resolved with the attribute's value. The returned value will always be either a string or null.

{!webdriver.promise.Promise} getCssValue(cssStyleProperty)
Schedules a command to query for the computed style of the element represented by this instance. If the element inherits the named style from its parent, the parent will be queried for its value. Where possible, color values will be converted to their hex representation (e.g. #00ff00 instead of rgb(0, 255, 0)).

Warning: the value returned will be as the browser interprets it, so it may be tricky to form a proper assertion.

Parameters:
{string} cssStyleProperty
The name of the CSS style property to look up.
Returns:
{!webdriver.promise.Promise} A promise that will be resolved with the requested CSS value.

{!webdriver.WebDriver} getDriver()
Returns:
{!webdriver.WebDriver} The parent driver for this instance.

{!webdriver.promise.Promise} getInnerHtml()
Schedules a command to retrieve the inner HTML of this element.
Returns:
{!webdriver.promise.Promise} A promise that will be resolved with the element's inner HTML.

{!webdriver.promise.Promise} getLocation()
Schedules a command to compute the location of this element in page space.
Returns:
{!webdriver.promise.Promise} A promise that will be resolved to the element's location as a {@code {x:number, y:number}} object.

{!webdriver.promise.Promise} getOuterHtml()
Schedules a command to retrieve the outer HTML of this element.
Returns:
{!webdriver.promise.Promise} A promise that will be resolved with the element's outer HTML.

{!webdriver.promise.Promise} getSize()
Schedules a command to compute the size of this element's bounding box, in pixels.
Returns:
{!webdriver.promise.Promise} A promise that will be resolved with the element's size as a {@code {width:number, height:number}} object.

{!webdriver.promise.Promise} getTagName()
Schedules a command to query for the tag/node name of this element.
Returns:
{!webdriver.promise.Promise} A promise that will be resolved with the element's tag name.

{!webdriver.promise.Promise} getText()
Get the visible (i.e. not hidden by CSS) innerText of this element, including sub-elements, without any leading or trailing whitespace.
Returns:
{!webdriver.promise.Promise} A promise that will be resolved with the element's visible text.

{!webdriver.promise.Promise} isDisplayed()
Schedules a command to test whether this element is currently displayed.
Returns:
{!webdriver.promise.Promise} A promise that will be resolved with whether this element is currently visible on the page.

{!webdriver.promise.Promise} isElementPresent(locator, var_args)
Schedules a command to test if there is at least one descendant of this element that matches the given search criteria.

Note that JS locator searches cannot be restricted to a subtree of the DOM. All such searches are delegated to this instance's parent WebDriver.

Parameters:
{webdriver.Locator|Object.} locator
The locator strategy to use when searching for the element.
{...} var_args
Arguments to pass to {@code WebDriver#executeScript} if using a JavaScript locator. Otherwise ignored.
Returns:
{!webdriver.promise.Promise} A promise that will be resolved with whether an element could be located on the page.

{!webdriver.promise.Promise} isEnabled()
Schedules a command to query whether the DOM element represented by this instance is enabled, as dicted by the {@code disabled} attribute.
Returns:
{!webdriver.promise.Promise} A promise that will be resolved with whether this element is currently enabled.

{!webdriver.promise.Promise} isSelected()
Schedules a command to query whether this element is selected.
Returns:
{!webdriver.promise.Promise} A promise that will be resolved with whether this element is currently selected.

{!webdriver.promise.Promise} sendKeys(var_args)
Schedules a command to type a sequence on the DOM element represented by this instance.

Modifier keys (SHIFT, CONTROL, ALT, META) are stateful; once a modifier is processed in the keysequence, that key state is toggled until one of the following occurs:

Note: On browsers where native keyboard events are not yet supported (e.g. Firefox on OS X), key events will be synthesized. Special punctionation keys will be synthesized according to a standard QWERTY en-us keyboard layout.
Parameters:
{...string} var_args
The sequence of keys to type. All arguments will be joined into a single sequence (var_args is permitted for convenience).
Returns:
{!webdriver.promise.Promise} A promise that will be resolved when all keys have been typed.

{!webdriver.promise.Promise} submit()
Schedules a command to submit the form containing this element (or this element if it is a FORM element). This command is a no-op if the element is not contained in a form.
Returns:
{!webdriver.promise.Promise} A promise that will be resolved when the form has been submitted.

{!webdriver.promise.Promise} toWireValue()
Returns:
{!webdriver.promise.Promise} A promise that resolves to this element's JSON representation as defined by the WebDriver wire protocol.
See:
http://code.google.com/p/selenium/wiki/JsonWireProtocol

Documentation generated by JsDoc Toolkit 2.4.0 on Sat Jan 25 2014 14:42:04 GMT-0500 (EST)