Represents a ShadowRoot of a WebElement. Provides functions to retrieve elements that live in the DOM below the ShadowRoot.

### Hierarchy

- ShadowRoot
  - ShadowRootPromise

### Implements

- Serializable<IWebElementId>

## Index

### Constructors

- constructor

### Methods

- findElement
- findElements
- getId
- serialize
- extractId
- isId

## Constructors

### constructor

- new ShadowRoot(driver: WebDriver, id: string | Promise<string>): ShadowRoot

- #### Parameters

  - ##### driver: WebDriver

  - ##### id: string | Promise<string>

  #### Returns ShadowRoot

## Methods

### findElement

- findElement(locator: Locator): WebElementPromise

- Schedule a command to find a descendant of this ShadowROot. If the element cannot be found, the returned promise will be rejected with a {@linkplain error.NoSuchElementError NoSuchElementError}.

  The search criteria for an element may be defined using one of the static factories on the {@link by.By} class, or as a short-hand {@link ./by.ByHash} object. For example, the following two statements are equivalent:

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

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

      var link = element.findElement(firstVisibleLink);

      function firstVisibleLink(shadowRoot) {
        var links = shadowRoot.findElements(By.tagName('a'));
        return promise.filter(links, function(link) {
          return link.isDisplayed();
        });
      }

  #### 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.

### findElements

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

- Locates 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.

### getId

- getId(): Promise<string>

- #### Returns Promise<string>

### serialize

- serialize(): Promise<IWebElementId>

- Implementation of Serializable.serialize

  override

  #### Returns Promise<IWebElementId>

### Static extractId

- extractId(obj: any): string

- Extracts the encoded ShadowRoot ID from the object.

  throws

    {TypeError} if the object is not a valid encoded ID.

  #### Parameters

  - ##### obj: any

    The object to extract the ID from.

  #### Returns string

  the extracted ID.

### Static isId

- isId(obj: any): boolean

- #### Parameters

  - ##### obj: any

    the object to test.

  #### Returns boolean

  whether the object is a valid encoded WebElement ID.

Generated using TypeDoc