Code Components

Re-using code is a very useful working method, saves time and energy when it comes to performing the same actions or any common action on each test, therefore when it needs an update or a fix, you only need to fix it in the script file itself.

Scripts can call the functions in the file using the po object statement.

Functions file:

module.exports = {
    Login: function(username, password) {
        web.type('id=userName',username);
        web.type('id=password',password);
        web.click('name=login');
        web.assertText('id=firstHeading', 'Welcome ' + username);
    }
}

it's also possible to use the ES6 arrow function and template literals

module.exports = {
    Login: (username, password) => {
        web.type('id=userName', username);
        web.type('id=password', password);
        web.click('name=login');
        web.assertText('id=firstHeading', `Welcome ${username}`);
    }
}

Script to run:

web.transaction('Opening browser and web-page');
web.init();
web.open('https://oxygenhq.org');
web.transaction('Logging in');

po.Login('User1', 'Password123');

web.click('id=button1');

In the above example , the script shall use the code it has inherited from a file called oxygen.po.js, it can contain many functions as you want and call it from any script you are running.

Last updated