node package manager

web-element-wrapper

Sorry, package will be avialable later

web-element-wrapper

Web-Element wrapper over Selenium WebElement. It represents a single element and collection of elements in one time. It is a Web Element builder. Also, this module contains waitHelper for WebElement. This component help you create method for expectations certain result on page.

Node

WebElement is available as an npm module.

$ npm install web-element-wrapper

Methods:

Methods for get property of Web Element(s):
  • isDisplayed
  • isSelected
  • isEnabled
  • isExists
  • getText
  • getContent
  • getCount
  • getAttribute
Actions over Web Element:
  • click
  • clear
  • sendKeys
  • hover
  • hoverAndClick
  • hide
Main criteria for Web element builder:
  • byXPath
Additional criteria for Web element builder:
  • includeHidden
  • byIndex
  • first
  • last
Methods for select item in combobox:
  • selectByText
  • selectByIndex
Cycles for web element(s):
  • forEach
  • select

Examples:

Import WebElement:

import {WebElement} from 'web-element-wrapper';

Find element and click:

let header = new WebElement(webDriver).byXPath("//h1[contains(.,'SOME TEXT')]");
await header.click();

WebElement builder(Get first Web Element on page including hidden):

let elem = await new WebElement(webDriver).byXPath(`$//div`).includeHidden().first();

ForEach(click by all elements):

let elems = await new WebElement(webDriver).byXPath(`//a[@ng-repeat]`);
await elems.forEach(async (elem: WebElement) => {await elem.click(); });

Waiting of the condition(Waiting for dying the loading indicator for 5 seconds):

public async waitLoadingIndicator(elem: WebElement, expectedResult: boolean): Promise<void> {
        let condition =  WaitHelper.createWaitCondition(elem, elem.isExists);
        let timeStamp  = { timeout: 5000, interval: 1000 };
        let waitngForSpinner = await WaitHelper.spinWait(condition, expectedResult, timeStamp);
 
        if (!waitngForSpinner) {
            throw 'Loading indicator failed';
        }
    }

Find element and find other element inside first

let tableOfUsers: WebElement = new WebElement(webDriver).ByXpath("//table[@id='listOfUsers']");
let userNames: WebElement = new WebElement(webDriver, tableOfUsers).ByXpath("./tr/td[1]");