• What is Automation Testing - Advantages & Types of Tools
  • What is Selenium IDE, Selenium RC, Selenium WebDriver, Selenium Grid?
  • Selenium IDE, Firebug & Firepath Installation


  • Selenium WebDriver Architecture
  • Selenium Installation
  • Challenges and Limitations of Selenium
  • First Selenium WebDriver Script
  • Working with Firefox Browser
  • Solution - Failed To Launch Browser Using Selenium WebDriver
  • Working with Chrome Browser
  • Working with IE Browser
  • Difference Between FindElement & FindElements
  • Install Firebug, Fire path and other add on for Selenium
  • Locators in Selenium
  • Dynamic Xpath
  • Dynamic CSS
  • Handle drop-downs
  • How to work with file upload
  • Handle Alerts & Popups
  • Handle Multiple Windows
  • Mouse Hover event in Selenium
  • Right Click
  • Double Click
  • Drag and Drop
  • Capture Screenshots in Selenium
  • Parameterization
  • Synchronization
  • Implicit Wait, Explicit Wait and Fluent Wait in Selenium
  • Implicit Waits
  • Explicit WebDriver Waits
  • Fluent Wait In Selenium
  • Apache POI
  • How To Read Data From Excel File
  • How To Write Data In Excel File
  • Database Testing Using MSSQL
  • Database Testing Using MySQL
  • Database Testing Using DB2
  • Handle Ajax Call in Selenium
  • Listeners in Selenium
  • Handling JavaScript in Selenium
  • Stale Element Reference Exception in Selenium
  • Integrate Sikuli with Selenium
  • Headless Browser Testing 
  • Headless Browser Testing using HtmlUnitDriver
  • Headless Browser Testing using PhanthomJSDriver


  • TestNG Installation
  • TestNG Complete Tutorial


  • Extent Reports Introduction
  • Extent Reports Generation
  • Capturing Screenshots & Including In Extent Reports
  • Extent Reports Version 4


  • ANT Build Tool - How To Download & Install
  • Maven Build Tool - How To Download & Install
  • Creating Maven Selenium Project
  • GIT Integration with Selenium
  • Jenkins - How To Download & Install
  • Jenkins - Executing TestNG Scripts
  • Jenkins - Generating Reports After Test Execution
  • Jenkins - Executing Maven Project
  • Create build and Execute build for nightly execution
  • Send Email report based on build Status
  • Selenium Continuous Integration with Jenkins [Selenium – Maven – Git – Jenkins] – Step By Step Guide


  • Running Selenium Tests On BrowserStack
  • Kobiton - Mobile Testing Platform with Real Devices


  • Mobile Testing Platform with Real Devices


  • What is Framework & Types of Framework
  • Page Object Model Design Pattern
  • Data Driven Framework
  • How to explain Test Automation Framework or Selenium Automation Framework Architecture In Interview

  • API Testing:

  • Learn API Testing
  • Postman Tutorial (API Testing with Postman)


  • Test Automation Framework Interview Questions
  • Selenium Interview Questions
  • TestNG Interview Questions
  • Java Interview Questions
  • Python Interview Questions
  • API Testing Interview Questions


  • Automation Tester Resume
  • Where you have applied OOPS in Automation Framework

    OOPS in Automation Framework

    You may face this question (Where you have applied OOPS Concept in Automation Framework) in almost all the Selenium Interviews. Learn OOPS concept in Java before going further. Earlier we have posted OOPS concept in Java with some easy to understand examples.

    Selenium Quiz

    Also check this post on explanation of automation framework. I use components of this post to explain the current post (i.e., application of OOPS concepts in Automation Framework). In this post, we will discuss how and where we applied following OOPs concepts in an Automation Framework.

    Java Quiz

    OOPS in Automation Framework


    In Page Object Model design pattern, we write locators (such as id, name, xpath etc.,) in a Page Class. We utilize these locators in tests but we can’t see these locators in the tests. Literally we hide the locators from the tests.

    Abstraction is the methodology of hiding the implementation of internal details and showing the functionality to the users.

    Learn more on Abstraction


    Basic statement we all know in Selenium is WebDriver driver = new FirefoxDriver();

    WebDriver itself is an Interface. So based on the above statement WebDriver driver = new FirefoxDriver(); we are initializing Firefox browser using Selenium WebDriver. It means we are creating a reference variable (driver) of the interface (WebDriver) and creating an Object. Here WebDriver is an Interface as mentioned earlier and FirefoxDriver is a class.

    An interface in Java looks similar to a class but both the interface and class are two different concepts. An interface can have methods and variables just like the class but the methods declared in interface are by default abstract. We can achieve 100% abstraction and multiple inheritance in Java with Interface.

    Learn more on Interface here.


    We create a Base Class in the Framework to initialize WebDriver interface, WebDriver waits, Property files, Excels, etc., in the Base Class.

    We extend the Base Class in other classes such as Tests and Utility Class. Extending one class into other class is known as Inheritance.

    Learn more on Inheritance here.


    Combination of overloading and overriding is known as Polymorphism. We will see both overloading and overriding below.

    Polymorphism allows us to perform a task in multiple ways.

    Learn more on Polymorphism here.


    We use implicit wait in Selenium. Implicit wait is an example of overloading. In Implicit wait we use different time stamps such as SECONDS, MINUTES, HOURS etc.,

    A class having multiple methods with same name but different parameters is called Method Overloading

    Learn more on Overloading here.


    We use a method which was already implemented in another class by changing its parameters. To understand this you need to understand Overriding in Java.

    Declaring a method in child class which is already present in the parent class is called Method Overriding. Examples are get and navigate methods of different drivers in Selenium .

    Learn more on Overriding with examples here


    All the classes in a framework are an example of Encapsulation. In POM classes, we declare the data members using @FindBy and initialization of data members will be done using Constructor to utilize those in methods.

    Encapsulation is a mechanism of binding code and data together in a single unit.

    Learn more on Encapsulation here

    I would like to discuss some other topics which we use in Automation Framework.


    Web element is an interface used to identify the elements in a web page.


    WebDriver is an interface used to launch different browsers such as Firefox, Chrome, Internet Explorer, Safari etc.,

    FIND BY:

    FindBy is an annotation used in Page Object Model design pattern to identify the elements.


    Find Element is a method in POM to identify the elements in a web page.

    Learn Java – A customized post for Selenium Automation Testers

    You might also like:

    OOPS in Automation Framework

    Get our latest blog posts delivered to your inbox

    Subscribe and get popular blog posts about software testing industry.


    5 thoughts on “Where you have applied OOPS in Automation Framework”

    1. Awesome explanation.. If we had worked in automation testing and we did not get a chance to know about framework from scratch. Your site is very useful and excellent understanding

    2. Thank you so much for clear information

    3. Sir, Your website is very helpful for me to prepare for my interview. can’t thank you enough!

      • Thanks. Please share this blog with your friends too.

    4. Thank you very much sir for explaining in such details.
      Request you to provide one more doc having practical questions related to java.
      i usually get stuck while explaining the concepts.
      plz do that. thanks again.

    Leave a Comment

    Share via
    Copy link
    Powered by Social Snap