Basics of Selenium WebDriver

Selenium WebDriver Basics

Selenium WebDriver Basics

A comprehensive guide to understanding and using Selenium WebDriver for web automation testing

What is Selenium WebDriver?

Selenium WebDriver is a powerful tool for automating web application testing. It provides a programming interface to create and execute test cases by simulating user interactions with a web browser.

🌐

Cross-Browser

Supports Chrome, Firefox, Safari, Edge, and more

💻

Multi-Language

Java, Python, C#, JavaScript, Ruby

Fast Execution

Direct communication with browsers

🔧

Extensible

Rich ecosystem of tools and libraries

WebDriver Architecture

Selenium WebDriver follows a client-server architecture:

  1. Selenium Client Libraries - Your test code written in a programming language
  2. JSON Wire Protocol - Communication protocol between client and browser driver
  3. Browser Drivers - Specific to each browser (ChromeDriver, GeckoDriver, etc.)
  4. Real Browsers - Chrome, Firefox, Safari, etc.
Basic WebDriver Example (Java)
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class FirstTest {
    public static void main(String[] args) {
        // Set the path for chromedriver
        System.setProperty("webdriver.chrome.driver", "path/to/chromedriver");
        
        // Initialize the driver
        WebDriver driver = new ChromeDriver();
        
        // Open a website
        driver.get("https://www.example.com");
        
        // Close the browser
        driver.quit();
    }
}

Setup and Installation

Setting up Selenium WebDriver involves a few key steps:

1. Install Java Development Kit (JDK)

Download and install the latest JDK from Oracle or OpenJDK.

2. Choose an IDE

Eclipse, IntelliJ IDEA, or VS Code are popular choices.

3. Add Selenium Dependencies

For Maven projects, add this to your pom.xml:

Maven Dependency
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.10.0</version>
</dependency>

4. Download Browser Drivers

Download the appropriate driver for your browser:

  • Chrome: ChromeDriver
  • Firefox: GeckoDriver
  • Edge: EdgeDriver
  • Safari: SafariDriver (built-in on macOS)

5. Set System Property

Tell Selenium where to find the browser driver:

Setting Driver Path
// For Chrome
System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver");

// For Firefox
System.setProperty("webdriver.gecko.driver", "/path/to/geckodriver");

Locating Web Elements

Locators are used to find and interact with elements on a web page. Selenium provides several strategies:

#

ID

Find by element ID (unique)

driver.findElement(By.id("username"))
.

Class Name

Find by CSS class

driver.findElement(By.className("btn"))
tag

Tag Name

Find by HTML tag

driver.findElement(By.tagName("input"))
name

Name

Find by name attribute

driver.findElement(By.name("email"))
//

XPath

Powerful XML path language

driver.findElement(By.xpath("//input[@type='text']"))
css

CSS Selector

CSS-style selectors

driver.findElement(By.cssSelector("input[type='submit']"))
link

Link Text

Find links by visible text

driver.findElement(By.linkText("Click Here"))
partial

Partial Link Text

Find links by partial text

driver.findElement(By.partialLinkText("Click"))

Best Practices for Locators

  • Prefer ID and Name when available (most stable)
  • Use CSS Selectors for complex selections
  • Avoid absolute XPaths when possible (they're brittle)
  • Use relative XPaths or CSS selectors with attributes
https://example.com/login
Locator Examples for Above Form
// By ID (recommended)
WebElement username = driver.findElement(By.id("username"));
WebElement password = driver.findElement(By.id("password"));

// By Name
WebElement username = driver.findElement(By.name("username"));

// By CSS Selector
WebElement loginBtn = driver.findElement(By.cssSelector("button.demo-btn"));

// By XPath
WebElement password = driver.findElement(By.xpath("//input[@type='password']"));

Selenium WebDriver Basics Tutorial | Learn Web Automation Testing

Comments

Popular posts from this blog

What is Software Testing? Complete Beginner-Friendly Guide

Defect Management: Complete Guide with Tools & Best Practices

SDLC Models: Complete Guide with Advantages & Disadvantages