DEV Community

loading...
Cover image for Run the first automation using Selenium and Java

Run the first automation using Selenium and Java

Sushil Khati Chhetri
Computer Science and Information Technology graduate with an emphasis in software development, automation testing , and network server handling, specializing in Object-Oriented design and analysis.
・3 min read

Selenium is the first thing that comes to mind when one is planning to automate the testing of web applications. Selenium is a beneficial tool because it is not only open source but also a portable software testing framework for web applications that support multiple languages like Java, PHP, C#, Ruby, Python. Choosing the right language depends on the application under test, the supporting community, available test automation frameworks, usability, elegance, and of course, seamless build integration.

IDE/Editor

We can use many IDEs and normal editors, but if we want to use free software, then the eclipse is the best IDE. However, we can write the code in VSCode and other paid software like Intellij IDEA and many more.

Here is the link to download eclipse vscode and Intellij IDEA.

Eclipse: eclipse IDE for Java
Vscode: Vscode
Intellij: Intellij IDEA

Writing the code

In the programming the folder structure is the best thing that all script writers or programmers should follow, that helps to easily understand the code structure and code flow.

Driver

Selenium WebDriver is a web framework that permits you to execute cross-browser tests. This tool is used for automating web-based application testing to verify that it performs expectedly. Selenium WebDriver allows you to choose a programming language to create test scripts.

Here is the link to download firefox(gecko) and chrome driver.
Firefox: gecko driver
Chrome: chrome driver

Create a project

  • Create a maven project in any IDE (eclipse/intellij)
  • Inside the pom.xml file copy the following dependencies. After adding these dependencies, the maven helps to download all the dependent packages into the project directory, so we do not have to download and install individually.

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.test_project</groupId>
    <artifactId>test_project</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>

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

        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-chrome-driver</artifactId>
            <version>3.13.0</version>
        </dependency>
        <dependency>

        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-firefox-driver</artifactId>
        <version>3.13.0</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-server</artifactId>
            <version>3.13.0</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-support</artifactId>
            <version>3.5.2</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-api</artifactId>
            <version>3.13.0</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.4</version>
        </dependency>
    </dependencies>

</project>
Enter fullscreen mode Exit fullscreen mode
  • Create a Main.java file in the src\main\java directory.

Main.java

public class Main {

    public  static  void main (String args[]) {
        System.out.println("Hello Selenium Project !! ");
}
Enter fullscreen mode Exit fullscreen mode
  • Import the selenium and driver class in the Main class.
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

Enter fullscreen mode Exit fullscreen mode
  • Add the driver functions to run the driver in Main.java
    WebDriver driver;
    //set the firefox driver
    public void setFirefoxDriver() {
        System.setProperty("webdriver.gecko.driver","driverlocation\\ geckodriver.exe");
        this.driver = new FirefoxDriver();
        this.driver.manage().window().maximize();
    }

    //set the chrome driver
    public void setChromeDriver() {
        System.setProperty("webdriver.chrome.driver","driverlocation\\chromedriver.exe");
        this.driver = new ChromeDriver();
        this.driver.manage().window().maximize();
   }
Enter fullscreen mode Exit fullscreen mode
  • Write a simple script to automate any site in Main.java.
public void runTheSimpleTest() {
   this.driver.setFirefoxDrier();
   this.driver.get("https://www.w3schools.com");
   System.out.println("Automation run successfully!!"); 
   //close the tab
   this.driver.close();
   //quite the browser 
   this.driver.quite(); 
}
Enter fullscreen mode Exit fullscreen mode
  • Run the Main.java file.
public class Main {
    public  static  void main (String args[]) {
       System.out.println("Hello Selenium Project !! ");
       runTheSimpleTest();
}
...other code blocks

Enter fullscreen mode Exit fullscreen mode

Hurray, the code worked !!

Discussion (0)