You are currently viewing Automated Web Testing with Java and Selenium WebDriver

Automated Web Testing with Java and Selenium WebDriver

Selenium WebDriver is a powerful tool for automating web browsers, and when combined with Java, it provides a robust framework for writing automated tests for web applications. In this tutorial, we’ll cover the basics of setting up Selenium WebDriver with Java and create a simple test case to demonstrate how to interact with a web page.

Prerequisites:

  • Java Development Kit (JDK) installed
  • Eclipse or IntelliJ IDEA (or any Java IDE)
  • Selenium WebDriver Java bindings (we’ll use Maven to manage dependencies)

Step 1: Setting Up the Project

1.1 Create a new Maven Project

If you are using IntelliJ IDEA or Eclipse with Maven integration, you can create a new Maven project. In IntelliJ IDEA, go to File -> New -> Project... and select Maven as the project type.

1.2 Add Selenium WebDriver Dependency

Add Selenium WebDriver dependency to your pom.xml file:

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.1.0</version>
</dependency>

1.3 Download WebDriver Executable (Optional)

You may need to download the WebDriver executable for the browser you plan to automate (e.g., ChromeDriver for Chrome, GeckoDriver for Firefox). Place the executable in a location accessible to your project.

Step 2: Writing a Simple Test

Let’s create a basic test case that navigates to a web page, interacts with elements, and asserts results.

2.1 Create a Java Class

Create a new Java class, for example, GoogleSearchTest, and add the following code:

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class GoogleSearchTest {

    public static void main(String[] args) {
        // Set the path to the WebDriver executable
        System.setProperty("webdriver.chrome.driver", "path_to_chromedriver");

        // Create a new instance of the ChromeDriver
        WebDriver driver = new ChromeDriver();

        // Navigate to Google
        driver.get("https://www.google.com");

        // Find the search input element by its name
        WebElement searchBox = driver.findElement(By.name("q"));

        // Enter a search query
        searchBox.sendKeys("Selenium WebDriver");

        // Submit the form
        searchBox.submit();

        // Wait for search results to load (you may need to add explicit waits in real tests)
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        // Print the page title
        System.out.println("Page title: " + driver.getTitle());

        // Find and click on the first search result
        WebElement firstResult = driver.findElement(By.cssSelector("h3"));
        firstResult.click();

        // Print the new page title
        System.out.println("New page title: " + driver.getTitle());

        // Close the browser
        driver.quit();
    }
}

2.2 Replace path_to_chromedriver

Make sure to replace "path_to_chromedriver" with the actual path to your ChromeDriver executable.

Step 3: Run the Test

Now you can run your test. If you’re using IntelliJ IDEA or Eclipse, simply run the main method of GoogleSearchTest.

The test will open a Chrome browser, navigate to Google, search for “Selenium WebDriver”, click on the first search result, and then print the page titles before closing the browser.

Conclusion

This is just a basic example, and Selenium offers many more features and capabilities for web testing. You can expand upon this example by adding assertions, handling different elements, waiting for elements to appear, and creating more complex test scenarios.

Remember to always clean up resources after testing (like closing the browser), and consider using Page Object Model (POM) for more maintainable and scalable test suites.

Leave a Reply