Protractor is an end-to-end test framework developed for Angular and AngularJS applications. It runs tests against the application interacting with it as a real user would, running in a real browser. In this article, we are going to test if an element has a given class or not.
Pre-requisite: Installation and Setup of Protractor
Approach:
- We are going to create a basic test program in which we are going to check if an element has a given class or not.
- All the Protractor tests will have a file that will contain the configuration and this will be the initial file that will initiate the test.
- Let’s create this file with the name conf.js.
conf.js:
Javascript
exports.config = {   Â// Capabilities to be passed to the   Â// webdriver instance.   Âcapabilities: {       Â'browserName':'chrome'   Â},   Â// Framework to use. Jasmine is recommended.   Âframework:'jasmine',   Â// Spec patterns are relative   Â// to the current working directory when   Â// protractor is called.   Âspecs: ['test.js'],   Â// Options to be passed to Jasmine.   ÂjasmineNodeOpts: {       ÂdefaultTimeoutInterval: 30000   Â},   Â// Url for the file   ÂonPrepare:function() {   Â}};
- Now let’s create our HTML file called test.html which will contain the element to be tested.
HTML
<!DOCTYPE html><htmllang="en">ÂÂ<head>   Â<metacharset="UTF-8">   Â<metaname="viewport"content=       Â"width=device-width, initial-scale=1.0">   Â<title>Testing</title></head>ÂÂ<body>   Â<!-- The element to be tested -->   Â<divid="sample-div"class="neveropen">       ÂInner text   Â</div></body>ÂÂ</html>
- Now let’s create our test file test.js. In this file, we are going to access an HTML file and then check if an element has a given class neveropen or not.
- Browser is a global created by Protractor, which is used for browser-level commands such as navigation with browser.get.
- describe and it syntax is from the Jasmine framework where describe is a description of your test while it is the steps for the test.
The spec file named test.js:
Javascript
describe('Protractor Demo App',function() {   Âit('should have a class',function() {    Â       Â// Disabling waiting for angular       Âbrowser.waitForAngularEnabled(false)       Â// Get our html file for testing       Âbrowser.get('test.html');       Â// Test if the element with id 'sample-div'       Â// has a class called 'neveropen'       Âlet sampleDiv = element(by.id('sample-div'));        Â       Âexpect(sampleDiv.getAttribute('class'))           Â.toContain("neveropen");   Â});});
- Finally, we are ready to run our file using the command given below:
protractor conf.js
- This will run the configuration file and the test will be run as shown in the screenshot below:
Output:

