Manual testing is a boring task to do because in manual testing we perform the same task many times which is time-consuming. To overcome this problem, we can automate testing with the help CasperJs. CasperJs allows you to build full navigation scenarios using high-level functions and a straight forward interface to accomplish all sizes of tasks.
In Magento there are various “repetitive” tasks to check such as customer registration process, customer log in to the account, adding different types of products to the shopping cart, checkout steps etc. These repetitive actions take a lot of time when we have done manually but now it can be done in few minutes by automation.
For the customer sign-up click here. Now we’ll proceed with the testing process. Here we’ll learn how we can log in and place an order using CasperJs into a Magento2 store.
The code procedure is as follows-
Open home page of your Magento2 store, click on “Sign In” link, open “Customer Login” page to fill out the Email and Password, submit it, wait to be redirected to “My Account Dashboard” and then get url of the Dashboard page.
Here we have used some CasperJs methods like-
click() method is used to click a link and buttons.
fill() method is used to fill the forms.
getCurrentUrl() is used to get the current page url.
echo() is used to print.
getTitle() is used to get Title of tha page.
wait() is used to wait for given amount of time.
/** * Webkul Software. * * @category Webkul * @package Webkul_CasperJS * @author Webkul * @copyright Copyright (c) 2010-2016 Webkul Software Private Limited (https://webkul.com) * @license https://store.webkul.com/license.html */ var casper = require("casper").create({ verbose: true }); var login = 'http://example.com/magento/customer/account/login/'; // Enter Your Magento Customer Login URL //Go to Login page casper.start(login, function () { this.echo('Current Page Title: ' + this.getTitle(), "COMMENT"); }); //Login form fillup casper.then(function () { this.fill('form#login-form', { 'login[username]': '[email protected]', 'login[password]': 'Xyz123' }, false); }); //Click On Sign in button casper.then(function () { this.click('#send2'); }); casper.wait(3000, function () { this.echo('Current Page Title: ' + this.getTitle(), "COMMENT"); this.echo('Current location is: ' + this.getCurrentUrl(), "PARAMETER"); }); // Click On Category casper.then(function () { this.click('#ui-id-7'); }); casper.wait(2000, function () { this.echo('Category Name: ' + this.getTitle(), "COMMENT"); }); // Click On Simple Product casper.then(function () { this.click('#maincontent > div.columns > div.column.main > div.products.wrapper.grid.products-grid > ol > li:nth-child(9) > div > a > span > span > img'); }); casper.wait(3000, function () { this.echo('Product Name: ' + this.getTitle(), "COMMENT"); }); // Click On Add to cart button casper.then(function () { this.click('#product-addtocart-button'); }); casper.wait(5000, function () { this.echo(this.fetchText('#maincontent > div.page.messages > div:nth-child(2) > div:nth-child(1) > div'), "INFO"); }); // Call Cart Page casper.thenOpen('http://example.com/magento/checkout/cart/'); // Enter Your Cart Page URL casper.wait(2000, function () { this.echo('Current Page Title: ' + this.getTitle(), "COMMENT"); }); // Click On Procced To Checkout Button casper.then(function () { this.click('#maincontent > div.columns > div > div.cart-container > div.cart-summary > ul > li:nth-child(1) > button'); }); casper.wait(5000, function () { this.echo('Current location is: ' + this.getCurrentUrl(), "PARAMETER"); }); // Select Address casper.wait(5000, function () { this.click('#checkout-step-shipping > div.field.addresses > div > div > div:nth-child(2) > button'); }); //Click On Next Button // call payment page casper.then(function () { this.click('#shipping-method-buttons-container > div > button'); }); casper.wait(2000, function () { this.echo('Current Page Title: ' + this.fetchText('#payment > div.step-title'), "COMMENT"); }); // Click on Proceed Button casper.wait(8000, function () { this.click('#checkout-payment-method-load > div > div.payment-method._active > div.payment-method-content > div.actions-toolbar > div > button'); }); // Success messgage casper.wait(10000, function () { this.echo(this.fetchText('#maincontent > div.columns > div > div.checkout-success > p:nth-child(1)'), "INFO_BAR"); this.echo('Current Page Title: ' + this.getTitle(), "INFO_BAR"); }); casper.run();
Now you have to run a command on your terminal-
casperjs your_file_name.js
Here, you can see the result on your terminal –
After running the script you will get the Order Number and Success message on terminal.
Be the first to comment.