← Back to list

Selenium Automation Testing for Beginners: A Hands-On Guide to Automation Testing

Introduction

MEENU SINGH · 2025-05-23 17:28 · 3 claps · 5.5 min read
#selenium #automation-testing #java #junit #webdriver
Open on Medium ↗

Selenium Automation Testing for Beginners: A Hands-On Guide to Automation Testing

Introduction

As software gets more complex, testing becomes harder and more important. Manual testing is good for exploring new features but can be slow and repetitive when checking old features again. Automation testing helps by letting us write scripts that act like real users — this saves time, covers more tests, and gives reliable results.

👋 Welcome to the World of Automation

If you’ve ever heard, “Just automate it with Selenium,” and wondered how — you’re in the right place. This guide is crafted for absolute beginners and outlines everything from the purpose of automation testing to writing and executing your first Selenium script.

Importance of Test Automation in Modern Software Development

Test automation plays a vital role in today’s fast-paced software development landscape. Here’s why it has become indispensable:

⚡ Rapid Feedback and Speed

Automated tests run significantly faster than manual ones, enabling quick feedback and early defect detection. This is vital for Agile teams and CI/CD pipelines where code changes are frequent.

🎯 Precision and Reliability

Automation removes human error by executing tests with exact steps every time. This ensures reliable, consistent, and repeatable results — ideal for maintaining quality.

🔁 Seamless Regression Coverage

As software evolves, new changes can break existing features. Automated regression tests protect against this by verifying that previous functionality still works correctly.

🚀 Core Enabler of CI/CD

Automated tests are the backbone of CI/CD pipelines. They validate every code change in real time, ensuring only stable and verified code reaches production.

💸 Long-Term Cost Efficiency

Although the initial setup requires investment, automation drastically reduces repetitive manual efforts, freeing up testers to focus on critical and exploratory testing.

🧪 Concurrent Multi-Environment Testing

Automation allows simultaneous execution across various environments, configurations, and devices — speeding up cycles and catching compatibility issues early.

🧪 Introducing Selenium

Selenium is a free and open-source framework for automating browser-based applications. It is widely used by QA engineers and developers for functional and regression testing.

Why Selenium?

  • Multi-language support (Java, Python, C#, JavaScript)
  • Works with all major browsers (Chrome, Firefox, Safari, Edge)
  • Integrates with tools like TestNG, JUnit, Maven, Jenkins, etc.
  • Backed by a large global community and rich ecosystem

🧩 Components of Selenium

Key Components Of Selenium

Key Components Of Selenium

🔹 Selenium WebDriver

If you need to create robust, browser-based regression automation suites and tests, and scale or distribute scripts across different environments, Selenium WebDriver is the tool to use. It is a collection of language-specific bindings (Java, Python, C#, etc.) that drives browsers natively, providing precise control and flexibility for automation.

🔹 Selenium IDE

Perfect for quick bug reproduction and automation-assisted exploratory testing, Selenium IDE is a browser add-on (available for Chrome, Firefox, and Edge) that provides a simple record-and-playback feature. It’s best suited for beginners or for creating fast, scriptless test cases.

🔹 Selenium Grid

To scale your testing by running tests on multiple machines in parallel, Selenium Grid is the ideal component. It helps manage different browser and OS combinations from a central point, making it perfect for distributed testing and continuous integration setups.

⚙️ Setting Up Selenium (Java Edition)

Let’s walk through the basic setup required for writing Selenium automation using Java:

Step 1: Install Java Development Kit (JDK)

  • Download from: Oracle JDK
  • Set JAVA_HOME environment variable
  • Verify: java -version

Step 2: Install Eclipse IDE

  • Download from: eclipse.org
  • Open and configure your workspace

Step 3: Configure Maven Dependencies

<dependencies>
    <!-- Selenium Java library -->
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>4.18.1</version>
    </dependency>

    <!-- WebDriverManager for automatic driver management -->
    <dependency>
        <groupId>io.github.bonigarcia</groupId>
        <artifactId>webdrivermanager</artifactId>
        <version>5.6.4</version>
    </dependency>
</dependencies>

Why These Dependencies?

  • selenium-java: Gives access to WebDriver APIs to automate the browser.
  • webdrivermanager: Automatically downloads and configures the right browser driver.

Here’s how your project directory should look:

✍️ Your First Selenium Script — Ajio Website Test

Let’s dive into a practical example that shows how Selenium can automate real user actions on Ajio’s website. This script navigates to the women’s section, searches for dresses, and opens the first product — all fully automated with just a few lines of Java code.

package com.example.seleniumguide;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import io.github.bonigarcia.wdm.WebDriverManager;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

import java.time.Duration;

public class AjioTest {
    public static void main(String[] args) {
        WebDriverManager.chromedriver().setup();

        ChromeOptions options = new ChromeOptions();
        options.addArguments("start-maximized");
        options.addArguments("user-agent=Mozilla/5.0");

        WebDriver driver = new ChromeDriver(options);

        try {
            WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));

            // Open Ajio homepage
            driver.get("https://www.ajio.com/");

            // Click on the "WOMEN" link
            WebElement womenLink = wait.until(ExpectedConditions.elementToBeClickable(By.linkText("WOMEN")));
            womenLink.click();

            // Wait for the search box to be visible on the WOMEN page
            WebElement searchBox = wait.until(ExpectedConditions.visibilityOfElementLocated(By.name("searchVal")));

            // Search for "dresses"
            searchBox.sendKeys("dresses");
            searchBox.submit(); // Submit the search form

            // Wait for the search results to load and show products
            wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("div.listing")));

            // Click on the first product in the search results
            WebElement firstProduct = driver.findElement(By.cssSelector("div.listing div.item"));
            firstProduct.click();

            // Wait a bit so user can see product page opened
            Thread.sleep(5000);

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            driver.quit();
        }
    }
}

Breaking Down the Key Components of Our Ajio Selenium Automation Script

  1. WebDriverManager Setup
WebDriverManager.chromedriver().setup();

This handle utility automatically downloads and sets up the correct ChromeDriver version for your browser. It saves you from manual driver management headaches.

2. Browser Configuration with ChromeOptions

ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");
options.addArguments("user-agent=Mozilla/5.0");

Here, we customize the Chrome browser to open maximized and use a common user-agent string. This helps mimic real user behavior and sometimes avoids detection as a bot.

3. Initializing WebDriver

WebDriver driver = new ChromeDriver(options);

This launches a new Chrome browser instance using the options defined above. It’s your automation tool’s gateway to controlling the browser.

4. Explicit Waits with WebDriverWait

WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));

Using explicit waits is crucial in Selenium. This object pauses the script until certain elements appear or become clickable, preventing errors due to slow page loading

5. Navigating and Interacting with Web Elements

driver.get("https://www.ajio.com/");
WebElement womenLink = wait.until(ExpectedConditions.elementToBeClickable(By.linkText("WOMEN")));
womenLink.click();

We open Ajio’s homepage, wait for the “WOMEN” link to be clickable, then click it. Waiting ensures that the element is ready before interacting.

6. Searching for Products

WebElement searchBox = wait.until(ExpectedConditions.visibilityOfElementLocated(By.name("searchVal")));
searchBox.sendKeys("dresses");
searchBox.submit();

After navigating to the women’s section, we wait for the search box, type “dresses,” and submit the form to get search results.

7. Selecting the First Product

wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("div.listing")));
WebElement firstProduct = driver.findElement(By.cssSelector("div.listing div.item"));
firstProduct.click();

Once results load, we wait for the product listing, then click the first product to open its details page.

  1. Clean-up
driver.quit();

Finally, we close the browser session, freeing up resources.

🧾 View Full Code on GitHub

You can find the complete project files and updates here:

https://github.com/meenu155/seleniumguide

📝 Summary

In this guide, we explored the fundamentals of web automation testing with Selenium. From understanding why automation is crucial in modern development to setting up a Selenium project in Java, we walked through each step — culminating in a practical Ajio website test script. You learned how to launch browsers, wait for elements, interact with pages, and automate real-world user flows.

Whether you’re a beginner looking to break into test automation or a developer aiming to write more reliable tests, Selenium offers a flexible and powerful foundation to build on.

🎯 Final Thoughts

Selenium is more than just a testing tool — it’s a gateway to smarter, faster, and more consistent software development. With a bit of practice, you’ll be creating advanced test scenarios, integrating CI/CD pipelines, and boosting software quality across projects.

🚀 What’s Next?

Here are a few great next steps:

✅ Automate login and registration forms ✅ Explore TestNG or JUnit for structured testing ✅ Integrate with Jenkins to build CI/CD pipelines

💬 Let’s Connect!

Did this guide help you get started with Selenium? Have questions or your own tips to share? Drop a comment — I’d love to hear from you and help you grow on this exciting automation journey! 🚀


메타데이터
post_id
e653ac709a76
slug
selenium-automation-testing-for-beginners-a-hands-on-guide-to-automation-testing-e653ac709a76
url
https://medium.com/@2024sl93093/selenium-automation-testing-for-beginners-a-hands-on-guide-to-automation-testing-e653ac709a76
canonical_url
https://medium.com/@2024sl93093/selenium-automation-testing-for-beginners-a-hands-on-guide-to-automation-testing-e653ac709a76
author_url
https://medium.com/@2024sl93093
status
ok
fetched_at
2026-07-15 04:21:51