# Class WebElementPromise

Implement WebElementPromise

#### Hierarchy

- Promise<WebElement>
- WebElement
  - WebElementPromise

#####
Index

### Constructors

constructor

### Properties

[toStringTag]

### Methods

catch
clear
click
finally
findElement
findElements
getAttribute
getCssValue
getDriver
getId
getLocation
getRect
getShadowRoot
getSize
getTagName
getText
isDisplayed
isEnabled
isSelected
sendKeys
serialize
submit
takeScreenshot
then
buildId
equals
extractId
isId

## Constructors

### constructor

- new WebElementPromise(driver, el): WebElementPromise

- #### Parameters

  - ##### driver: WebDriver

    The parent WebDriver instance for this element.

  - ##### el: Promise<WebElement>

    A promise that will resolve to the promised element.

  #### Returns WebElementPromise

  Inherited from WebElement.constructor

## Properties

### `Readonly` [toStringTag]

[toStringTag]: string

Inherited from Promise.[toStringTag]

## Methods

### catch

- catch<TResult>(onrejected?): Promise<WebElement | TResult>

- Attaches a callback for only the rejection of the Promise.

  #### Type Parameters

  - #### TResult = never

  #### Parameters

  - ##### `Optional` onrejected: null | ((reason) => TResult | PromiseLike<TResult>)

    The callback to execute when the Promise is rejected.

  #### Returns Promise<WebElement | TResult>

  A Promise for the completion of the callback.

  Inherited from Promise.catch

### clear

- clear(): Promise<void>

- Schedules a command to clear the `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 Promise<void>

  A promise that will be resolved when the element has been cleared.

  Inherited from WebElement.clear

### click

- click(): Promise<void>

- Schedules a command to click on this element.

  #### Returns Promise<void>

  A promise that will be resolved when the click command has completed.

  Inherited from WebElement.click

### finally

- finally(onfinally?): Promise<WebElement>

- Attaches a callback that is invoked when the Promise is settled (fulfilled or rejected). The resolved value cannot be modified from the callback.

  #### Parameters

  - ##### `Optional` onfinally: null | (() => void)

    The callback to execute when the Promise is settled (fulfilled or rejected).

  #### Returns Promise<WebElement>

  A Promise for the completion of the callback.

  Inherited from Promise.finally

### findElement

- findElement(locator): WebElementPromise

- Schedule a command to find a descendant of this element. If the element cannot be found, a 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 #findElements.

  The search criteria for an element may be defined using one of the factories in the By namespace, or as a short-hand By.Hash object. For example, the following two statements are equivalent:

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

  You may also provide a custom locator function, which takes as input this WebDriver instance and returns a WebElement, or a promise that will resolve to a WebElement. For example, to find the first visible link on a page, you could write:

      var link = element.findElement(firstVisibleLink);

      function firstVisibleLink(element) {
        var links = element.findElements(By.tagName('a'));
        return promise.filter(links, function(link) {
          return links.isDisplayed();
        }).then(function(visibleLinks) {
          return visibleLinks[0];
        });
      }

  #### Parameters

  - ##### locator: Locator

    The locator strategy to use when searching for the element.

  #### Returns WebElementPromise

  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.

  Inherited from WebElement.findElement

### findElements

- findElements(locator): Promise<WebElement[]>

- Schedules a command to find all of the descendants of this element that match the given search criteria.

  #### Parameters

  - ##### locator: Locator

    The locator strategy to use when searching for the element.

  #### Returns Promise<WebElement[]>

  A promise that will resolve to an array of WebElements.

  Inherited from WebElement.findElements

### getAttribute

- getAttribute(attributeName): Promise<string>

- 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:

  - 'class'
  - 'readonly'

  #### Parameters

  - ##### attributeName: string

    The name of the attribute to query.

  #### Returns Promise<string>

  A promise that will be resolved with the attribute's value. The returned value will always be either a string or null.

  Inherited from WebElement.getAttribute

### getCssValue

- getCssValue(cssStyleProperty): Promise<string>

- 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

  - ##### cssStyleProperty: string

    The name of the CSS style property to look up.

  #### Returns Promise<string>

  A promise that will be resolved with the requested CSS value.

  Inherited from WebElement.getCssValue

### getDriver

- getDriver(): WebDriver

- #### Returns WebDriver

  The parent driver for this instance.

  Inherited from WebElement.getDriver

### getId

- getId(): Promise<string>

- #### Returns Promise<string>

  A promise that resolves to the server-assigned opaque ID assigned to this element.

  Inherited from WebElement.getId

### getLocation

- getLocation(): Promise<ILocation>

- DEPRECATED 3.0 Schedules a command to compute the location of this element in page space.

  #### Returns Promise<ILocation>

  A promise that will be resolved to the element's location as a {@code {x:number, y:number}} object.

  Inherited from WebElement.getLocation

### getRect

- getRect(): Promise<IRectangle>

- Returns an object describing an element's location, in pixels relative to the document element, and the element's size in pixels.

  #### Returns Promise<IRectangle>

  Inherited from WebElement.getRect

### getShadowRoot

- getShadowRoot(): ShadowRootPromise

- Get the shadow root of the current web element.

  #### Returns ShadowRootPromise

  A promise that will be resolved with the elements shadow root or rejected with NoSuchShadowRootError

  Inherited from WebElement.getShadowRoot

### getSize

- getSize(): Promise<ISize>

- DEPRECATED 3.0 Schedules a command to compute the size of this element's bounding box, in pixels.

  #### Returns Promise<ISize>

  A promise that will be resolved with the element's size as a {@code {width:number, height:number}} object.

  Inherited from WebElement.getSize

### getTagName

- getTagName(): Promise<string>

- Schedules a command to query for the tag/node name of this element.

  #### Returns Promise<string>

  A promise that will be resolved with the element's tag name.

  Inherited from WebElement.getTagName

### getText

- getText(): Promise<string>

- Get the visible (i.e. not hidden by CSS) innerText of this element, including sub-elements, without any leading or trailing whitespace.

  #### Returns Promise<string>

  A promise that will be resolved with the element's visible text.

  Inherited from WebElement.getText

### isDisplayed

- isDisplayed(): Promise<boolean>

- Schedules a command to test whether this element is currently displayed.

  #### Returns Promise<boolean>

  A promise that will be resolved with whether this element is currently visible on the page.

  Inherited from WebElement.isDisplayed

### isEnabled

- isEnabled(): Promise<boolean>

- Schedules a command to query whether the DOM element represented by this instance is enabled, as dicted by the {@code disabled} attribute.

  #### Returns Promise<boolean>

  A promise that will be resolved with whether this element is currently enabled.

  Inherited from WebElement.isEnabled

### isSelected

- isSelected(): Promise<boolean>

- Schedules a command to query whether this element is selected.

  #### Returns Promise<boolean>

  A promise that will be resolved with whether this element is currently selected.

  Inherited from WebElement.isSelected

### sendKeys

- sendKeys(...var_args): Promise<void>

- Schedules a command to type a sequence on the DOM element represented by this promsieinstance.

  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:

  - The modifier key is encountered again in the sequence. At this point the state of the key is toggled (along with the appropriate keyup/down events).

  - The Key.NULL key is encountered in the sequence. When this key is encountered, all modifier keys current in the down state are released (with accompanying keyup events). The NULL key can be used to simulate common keyboard shortcuts:

          element.sendKeys('text was',
                           Key.CONTROL, 'a', Key.NULL,
                           'now text is');
          // Alternatively:
          element.sendKeys('text was',
                           Key.chord(Key.CONTROL, 'a'),
                           'now text is');

  - The end of the keysequence is encountered. When there are no more keys to type, all depressed modifier keys are released (with accompanying keyup events).

  If this element is a file input ({@code }), the specified key sequence should specify the path to the file to attach to the element. This is analgous to the user clicking 'Browse...' and entering the path into the file select dialog.

      var form = driver.findElement(By.css('form'));
      var element = form.findElement(By.css('input[type=file]'));
      element.sendKeys('/path/to/file.txt');
      form.submit();

  For uploads to function correctly, the entered path must reference a file on the browser's machine, not the local machine running this script. When running against a remote Selenium server, a FileDetector may be used to transparently copy files to the remote machine before attempting to upload them in the browser.

  Note: On browsers where native keyboard events are not 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

  - ##### `Rest` ...var_args: (string | number | Promise<string | number>)[]

    The sequence of keys to type. All arguments will be joined into a single sequence.

  #### Returns Promise<void>

  A promise that will be resolved when all keys have been typed.

  Inherited from WebElement.sendKeys

### serialize

- serialize(): Promise<IWebElementId>

- #### Returns Promise<IWebElementId>

  Inherited from WebElement.serialize

### submit

- submit(): Promise<void>

- 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 Promise<void>

  A promise that will be resolved when the form has been submitted.

  Inherited from WebElement.submit

### takeScreenshot

- takeScreenshot(opt_scroll?): Promise<string>

- Take a screenshot of the visible region encompassed by this element's bounding rectangle.

  #### Parameters

  - ##### `Optional` opt_scroll: boolean

    Optional argument that indicates whether the element should be scrolled into view before taking a screenshot. Defaults to false.

  #### Returns Promise<string>

  A promise that will be resolved to the screenshot as a base-64 encoded PNG.

  Inherited from WebElement.takeScreenshot

### then

- then<TResult1, TResult2>(onfulfilled?, onrejected?): Promise<TResult1 | TResult2>

- Attaches callbacks for the resolution and/or rejection of the Promise.

  #### Type Parameters

  - #### TResult1 = WebElement

  - #### TResult2 = never

  #### Parameters

  - ##### `Optional` onfulfilled: null | ((value) => TResult1 | PromiseLike<TResult1>)

    The callback to execute when the Promise is resolved.

  - ##### `Optional` onrejected: null | ((reason) => TResult2 | PromiseLike<TResult2>)

    The callback to execute when the Promise is rejected.

  #### Returns Promise<TResult1 | TResult2>

  A Promise for the completion of which ever callback is executed.

  Inherited from Promise.then

### `Static` buildId

- buildId(id, opt_noLegacy?): IWebElementId

- #### Parameters

  - ##### id: string

    The raw ID.

  - ##### `Optional` opt_noLegacy: boolean

    Whether to exclude the legacy element key.

  #### Returns IWebElementId

  The element ID for use with WebDriver's wire protocol.

  Inherited from WebElement.buildId

### `Static` equals

- equals(a, b): Promise<boolean>

- Compares two WebElements for equality.

  #### Parameters

  - ##### a: WebElement

    A WebElement.

  - ##### b: WebElement

    A WebElement.

  #### Returns Promise<boolean>

  A promise that will be resolved to whether the two WebElements are equal.

  Inherited from WebElement.equals

### `Static` extractId

- extractId(obj): string

- Extracts the encoded WebElement ID from the object.

  #### Parameters

  - ##### obj: IWebElementId

    The object to extract the ID from.

  #### Returns string

  the extracted ID.

  #### Throws

  if the object is not a valid encoded ID.

  Inherited from WebElement.extractId

### `Static` isId

- isId(obj): boolean

- #### Parameters

  - ##### obj: IWebElementId

    the object to test.

  #### Returns boolean

  whether the object is a valid encoded WebElement ID.

  Inherited from WebElement.isId

Generated using TypeDoc