e-Zest members share technology ideas to foster digital transformation.

Automation using Selenium WebDriver Frameworks

Written by Uddhav Naik | Sep 26, 2016 7:24:02 AM

Frameworks help to structure our code and make the maintenance process easy. Without frameworks we will place all our code and data in same place which is neither re-usable nor readable. Using frameworks provides beneficial outcomes like increase code re-usage, higher portability, reduced script maintenance cost, etc.

Pre-requisites:

  • Basic programming knowledge of Java
  • Understanding of TestNG Framework
  • Installation of Eclipse IDE and Java

There are mainly three types of frameworks created by Selenium WebDriver to automate manual test cases. Based on the requirements of the project any of the below frameworks can be implemented:

  • Data Driven Test framework
  • Keyword Driven Test framework
  • Hybrid Test framework

1.      Data Driven Test framework

In data driven framework all of our test data is generated from some external files like excel, csv, XML or some database table. Selenium Webdriver Data-Driven Framework is where test input and output values are from data files (ODBC sources, CVS files, Excel files, and DAO objects) and are loaded into variables in captured or manually coded scripts.

2.      Keyword Driven Test Framework:

In keyword driven test framework, all the operations and instructions are written in some external file like excel worksheet. In this framework, keywords are developed which are equal to a unit level functionality. It is an independent framework which performs automation based on the keywords specified in the excel sheet. Based on the type of application, the number of keywords will be increased to handle different functionalities. Keyword driven test framework is a 5-step framework as described below:

Step 1)

  • The driver script Execute.java will call ReadExcelFile.java
  • ReadExcelFile.java has POI script to read data from an Excel

Step 2)

  • ReadExcelFile.java will read data from TestCase.xlsx
  • Here is how the sheet looks like-

  • According to the keywords written in excel file, the framework will perform the operation on UI.
  • For example, we need to click on a button 'Login'. Correspondingly, the excel sheet will have a keyword 'Click'. Now the AUT can have hundreds of button on a page, to identify a Login button, in excel we will input Object Name as loginButton and object type as name (see highlighted row in above image). The Object Type could be xpath, name, css or any other value

Step 3) ReadExcelFile.java will pass this data to the driver script Execute.java

Step 4)

  • For all of our UI web elements we need to create an object repository where we will place their element locator (like xpath, name, css path, class name etc.)
  • java (our driver script) will read the entire Object Repository and store it in a variable
  • To read this object repository we need a ReadObject class which has a getObjectRepository method to read it.
  • java (our driver script) will read the entire Object Repository and store it in a variable
  • To read this object repository we need a ReadObject class which has a getObjectRepository method to read it.

NOTE: You may think why we need to create an object repository. The answer, it helps in code maintenance. For example, we are using a button with name = btnlogin in 10 different test cases. In future, the developer decides to change the name from btnlogin to submit. You will have to make change in all the 10 test cases. In case of an object repository, you will make change just once in the repository.

Step 5)

  • The driver will pass the data from excel and Object Repositoy to UIOperation class.
  • UIOperation class has functions to perform actions corresponding to keywords like CLICK, SETTEXT etc. mentioned in the excel sheet.
  • UIOperation class is a java class which has the actual implementation of the code to perform operations on web elements. 

3.      Hybrid Test Framework

Hybrid Test framework is a concept where we are using the advantage of both Keyword and data driven framework.

Here for keywords we will use excel files to maintain test cases and for test data we can use data provider of TestNG framework.

Here in our hybrid framework we don't need to change anything in Keyword driven framework, here we just need to replace ExecuteTest.java file with HybridExecuteTest.java file.

This ‘HybridExecuteTest.java’ file has all the code for keyword driven with data provider concept.

Fill the below form to download Java files