Useful helper functions for doing Selenium testing
class helper {
/**
*
* @param webdriver {webdriver.IWebDriver} Web driver needed
* @param {*} driver
*/
constructor(webdriver, driver) {
this.webdriver = webdriver;
this.driver = driver;
}
/**
* Do a click on an element
* @param {*} by The selector you want to invoke a click on
*/
click(by) {
this.driver.findElement(by).click();
}
/**
* Sets a text in a input type
* @param by {webdriver:By} The selector to use
* @param text {string} The text you want to set
* @returns undefined
*/
setText(by, text) {
var element = this.driver.findElement(by);
element.clear();
element.sendKeys(text);
}
waitForPageLoad() {
var promise = new Promise((resolve, reject) => {
this.driver.wait((driver) => {
return driver.executeScript('return document.readyState').then(scriptRetVal => {
return scriptRetVal === 'complete';
});
}, 2000).then(() => {
resolve(true);
}).catch(() => {
reject(false);
});
});
return promise;
}
}
The helper class allows you to do basic input output with browser windows.
An example of using it would be
var webdriver = require('selenium-webdriver');
var helper = require('./helper').helper;
var driver = new webdriver.Builder()
.withCapabilities(webdriver.Capabilities.chrome())
.build();
var _helper = new helper(webdriver, driver);
_helper.click(webdriver.By.id('test'));