Web-Element wrapper is wrapper over Selenium WebElement.
npm install web-element-wrapperSorry, package will be avialable later
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.
WebElement is available as an npm module.
`` shell`
$ npm install web-element-wrapper
##### 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
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):
`$//div
let elem = await new WebElement(webDriver).byXPath().includeHidden().first();`
ForEach(click by all elements):
`//a[@ng-repeat]
let elems = await new WebElement(webDriver).byXPath();`
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
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]");