Skip to content

Make Selenium Easy

And Keep It That Way

  • Home
  • Share
  • Toggle search form

Usage of Enum in Selenium WebDriver Scripts

Posted on 01/13/2025 By admin

An Enum in Java is a type which is used to define a collection of constants. For an example – We have fixed number of days in a week. We can use an Enum type in Java to store these days.

In our Selenium WebDriver scripts, we may pass a browser name as a string from scripts and then we compare passed browser names i.e. if it is chrome, launch chrome and so on. Let’s see an example code :-

package EnumUsage;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.Test;

import io.github.bonigarcia.wdm.WebDriverManager;

public class WithoutEnum {

        private WebDriver launchBrowser(String browserName) {
                if (browserName.equalsIgnoreCase("Chrome")) {
                        WebDriverManager.chromedriver().setup();
                        return new ChromeDriver();
                } else if (browserName.equalsIgnoreCase("Firefox")) {
                        WebDriverManager.firefoxdriver().setup();
                        return new FirefoxDriver();
                } else {
                        System.out.println("Incorrect browser name passed.");
                        return null;
                }
        }
        
        @Test
        public void googleTestChrome()
        {
                WebDriver driver = launchBrowser("Chrome");
                driver.get("https://www.google.com");
                driver.close();
        }
        
        @Test
        public void googleTestFirefox()
        {
                WebDriver driver = launchBrowser("Firefox");
                driver.get("https://www.google.com");
                driver.close();
        }
        

}

Above Selenium script runs fine but what if you pass browser name as “Chrome Browser” or “CH” or “Google Chrome” if you are not aware of correct format? It will give you message as “Incorrect browser name passed.”. Some may raise questions that you have written code you must know or train others how to pass browser name. I believe that any code snippet should minimize its incorrect usage. And here it is just an example of passing browser names, you may face many such scenarios as above and you can not expect everyone to remember exact values.

Above problem can be resolved using Enum – A set of constants. We can restrict automation tester to choose from a predefined set of constants. Let’s rewrite above code using Enum :-

package EnumUsage;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.Test;
import io.github.bonigarcia.wdm.WebDriverManager;

// Define all browser names you are supporting in framework
enum BrowserNames {
        CHROME,FIREFOX
}


public class WithEnum {

        // Comparing value using if else
        private WebDriver launchBrowser(BrowserNames browserName) {
                WebDriver driver = null;
                if (browserName == BrowserNames.CHROME) {
                        WebDriverManager.chromedriver().setup();
                        driver = new ChromeDriver();
                } else if (browserName == BrowserNames.FIREFOX) {
                        WebDriverManager.firefoxdriver().setup();
                        driver = new FirefoxDriver();
                }
                return driver;
        }
        
        // Comparing value as switch
        private WebDriver launchBrowserSwitch(BrowserNames browserName) {
                WebDriver driver = null;
                switch (browserName) {
                case CHROME:
                        WebDriverManager.chromedriver().setup();
                        driver = new ChromeDriver();
                        break;
                case FIREFOX:
                        WebDriverManager.firefoxdriver().setup();
                        driver = new FirefoxDriver();
                        break;
                }
                
                return driver;
        }
        
        @Test
        public void googleTestChrome()
        {
                WebDriver driver = launchBrowser(BrowserNames.CHROME);
                driver.get("https://www.google.com");
                driver.close();
        }
        
        @Test
        public void googleTestFirefox()
        {
                WebDriver driver = launchBrowserSwitch(BrowserNames.FIREFOX);
                driver.get("https://www.google.com");
                driver.close();
        }
}

Same approach you can use wherever you need to work on specific data.

You can find my Selenium WebDriver Java GIT repo here.

If you have any doubt, feel free to comment below.If you like my posts, please like, comment, share and subscribe.#ThanksForReading

#HappyLearning

Uncategorized

Post navigation

Previous Post: apply method in Function
Next Post: API Testing Tutorial Part 7 – HTTP Status Code Must To Be Remembered

Related Posts

FindAll Annotation In Page Factory In Selenium WebDriver Uncategorized
TestNG Tutorials 50: DataProvider in TestNG – Understand Basics of DataProvider & How It Works Uncategorized
REST Assured Tutorial 73 – How to ignore node/s for JSON comparison in JSONassert Uncategorized
findElements Uncategorized
June 6, 2017 – Make Selenium Easy Uncategorized
September 30, 2018 – Make Selenium Easy Uncategorized

Recent Posts

  • Getting Started with Selenium 4: What Is New and How to Upgrade from Selenium 3
  • Manual Testing
  • Baby Steps To Become Efficient Selenium-Java Automation Tester
  • Features of Selenium 4.0.0 Release – Java Binding
  • Part 1: Handling Drop-down Created Using SELECT Tag In Selenium

Recent Comments

No comments to show.

Archives

  • April 2026
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • April 2024
  • March 2024
  • February 2024
  • December 2023
  • October 2023
  • August 2023
  • November 2022
  • September 2022
  • August 2022
  • July 2022
  • May 2022
  • March 2022
  • October 2021
  • April 2021
  • March 2021
  • January 2021
  • December 2020
  • October 2020
  • September 2020
  • August 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • May 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • January 2018

Categories

  • Getting Started
  • Uncategorized

Copyright © 2026 Make Selenium Easy.

Powered by PressBook Masonry Dark