• Selenium Video Tutorials

Selenium with Java Tutorial



Selenium is used for automating test cases developed to test web based application. It supports more than one programming languages like Java, Python, C#, and so on.

How to Setup Selenium with Java?

Step 1 − Download and install Java from the link Java Downloads.

To get a more detailed view on how set up Java, refer to the link Java Environment Setup.

Once we have successfully installed Java, we can confirm its installation by running the command: java, from the command prompt.

C:\java 

Step 2 − Next, we would Confirm the version of the Java installed by running the command: java version.

java version

It will show the following output −

openjdk version "17.0.9" 2023-10-17
OpenJDK Runtime Environment Homebrew (build 17.0.9+0)
OpenJDK 64-Bit Server VM Homebrew (build 17.0.9+0, mixed mode, sharing)

Step 3 − Install Maven in our system using the link Downloading Apache Maven.

Next, we would confirm the version of the Maven installed by running the following command −

Confirm the version of the Maven installed by running the command: mvn version.

mvn version.

It will show the following output −

Apache Maven 3.9.6 (bc0240f3c744dd6b6ec2920b3cd08dcc295161ae)
Maven home: /opt/homebrew/Cellar/maven/3.9.6/libexec
Java version: 21.0.1, vendor: Homebrew, runtime: /opt/homebrew/Cellar/openjdk/21.0.1/libexec/openjdk.jdk/Contents/Home
Default locale: en_IN, platform encoding: UTF-8
OS name: "mac os x", version: "14.0", arch: "aarch64", family: "mac"

The output of the command executed signified that the Maven version installed in the system is Apache Maven 3.9.6.

Step 4 − Install a code editor called the IntelliJ to write and run the Selenium test.

Step 5 − Add the below code in the Main.java file.

package org.example;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;

public class Main {
   public static void main(String[] args) throws InterruptedException {

      // Initiate the Webdriver
      WebDriver driver = new ChromeDriver();

      // adding implicit wait of 12 secs
      driver.manage().timeouts().implicitlyWait(12, TimeUnit.SECONDS);
      
      // URL launch 
      driver.get("https://www.tutorialspoint.com/selenium/practice/resizable.php");

      // get browser title after browser launch
      System.out.println("Browser title: " + driver.getTitle());
   }
}

Overall dependencies added in the pom.xml file −

<?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>org.example</groupId>
   <artifactId>SeleniumJava</artifactId>
   <version>1.0-SNAPSHOT</version>

   <properties>
      <maven.compiler.source>16</maven.compiler.source>
      <maven.compiler.target>16</maven.compiler.target>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
   </properties>
   
   <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
   <dependencies>
      <dependency>
         <groupId>org.seleniumhq.selenium</groupId>
         <artifactId>selenium-java</artifactId>
         <version>4.19.0</version>
      </dependency>
   </dependencies>
</project>

Step 6 − Right click and select Run Main.main() option. Wait till the run is completed.

Step 7 − Chrome browser should be launched, the output in console with the message should be - Browser Title: Selenium Practice - Resizeable.

Finally, the message Process finished with exit code 0 was received, signifying successful execution of the code.

Along with that Chrome browser got launched with the message Chrome is being controlled by automated test software at the top.

Launch Browser and Quit Driver with Selenium Java

We can launch the browser and open an application using the driver.get() method, and finally close the browser with the close() method.

package org.example;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.edge.EdgeDriver;
import java.util.concurrent.TimeUnit;

public class CloseBrow{
   public static void main(String[] args) throws InterruptedException {

      // Initiate the Webdriver
      WebDriver driver = new ChromeDriver();

      // adding implicit wait of 12 secs
      driver.manage().timeouts().implicitlyWait(12, TimeUnit.SECONDS);

      // URL launch and get the browser title
      driver.get("https://www.tutorialspoint.com/selenium/practice/droppable.php");
      System.out.println( "Browser title obtained : " + driver.getTitle());

      // close browser
      driver.close();
   }
}

It will show the following output −

Browser title obtained: Browser Title: Selenium Practice - Droppable

Process finished with exit code 0

In the above example, we had first launched the Chrome browser then obtained the browser title and, then closed the browser, and in the console received the message - Browser title obtained: Selenium Practice - Student Registration Form.

How to Identify an Element and Check its Functionality using Selenium Java?

As an application is launched, the users interact with the web elements on the page like click on a link or a button, enter text within an input box, and so on to create the automation test cases.

The first task is to locate the element. There are multiple locators available in Selenium namely the id, class, class name, name, link text, partial link text, tagname, css, and xpath. They ate used along with the findElement() method in Java.

For instance, findElement(By.name(name)) will identify the first web element with the name attribute value. In case there is zero element with the same value of the name attribute, NoSuchElementException should be thrown

Let us see the html code of the same input box as highlighted in the below image −

Selenium Java Tutorial 2
<input name="name" id="name" type="text" class="form-control" placeholder="First Name">

The edit box highlighted in the above image has a name attribute with a value as name. Let us input the text Selenium into this edit box after identifying it.

package org.example;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;

public class LocatorsName {
   public static void main(String[] args) throws InterruptedException {
      
      // Initiate the Webdriver
      WebDriver driver = new ChromeDriver();

      // adding implicit wait of 20 secs
      driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);

      // Opening the webpage where we will identify edit box enter text
      driver.get("https://www.tutorialspoint.com/selenium/practice/selenium_automation_practice.php");

      // Identify the search box with name locator to enter text
      WebElement i = driver.findElement(By.name("name"));
      i.sendKeys("Selenium");
      
      // Get the value entered
      String text = i.getAttribute("value");
      System.out.println("Entered text is: " + text);
      
      // Closing browser
      driver.quit();
   }
}

It will show the following output −

Entered text is: Selenium 

Process finished with exit code 0

The output shows the message - Process with exit code 0 meaning that the above code executed successfully. Also, the value entered within the edit box (obtained from the getAttribute method) - Selenium got printed in the console.

Conclusion

This concludes our comprehensive take on the tutorial on Selenium Java Tutorial. Weve started with describing how to set up Selenium with Java, how to launch a browser and quit a session using the Selenium Java, and how to identify an element and check its functionality using Selenium Java. This equips you with in-depth knowledge of the Selenium Java Tutorial. It is wise to keep practicing what youve learned and exploring others relevant to Selenium to deepen your understanding and expand your horizons.

Advertisements