chrisyboy53
9/1/2017 - 2:03 PM

Useful helper functions for doing Selenium testing

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;
    }
}

How to use helper

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'));