• Selenium Video Tutorials

Selenium - Environment Setup



Selenium Webdriver can be used to automate tests on web applications. Selenium can be used with multiple languages like Java, Python, Ruby, and so on.

Let us discuss how to do the environment setup of Selenium with Java. Selenium Installation can be achieved with the following steps −

Step 1 − We would need to download and then install Java in our local system. This can be done by navigating to the below link −

https://www.oracle.com/java

To get a more detailed view on how set up Java, we can refer to the below link −

https://www.youtube.com/watch?v=bxIZ1GVWYkQ

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

C:\java 

It will display the following information on the screen −

Usage: java [options] <mainclass> [args...]
           (to execute a class)
   or  java [options] -jar <jarfile> [args...]
           (to execute a jar file)
   or  java [options] -m <module>[/<mainclass>] [args...]
       java [options] --module <module>[/<mainclass>] [args...]
           (to execute the main class in a module)
   or  java [options] <sourcefile> [args]
           (to execute a single source-file program)

 Arguments following the main class, source file, -jar <jarfile>,
 -m or --module <module>/<mainclass> are passed as the arguments to
 main class.

 where options include:

    -cp <class search path of directories and zip/jar files>
    -classpath <class search path of directories and zip/jar files>
    --class-path <class search path of directories and zip/jar files>
                  A ; separated list of directories, JAR archives,
                  and ZIP archives to search for class files.
    -p <module path>
    --module-path <module path>...
                  A ; separated list of directories, each directory
                  is a directory of modules.
    --upgrade-module-path <module path>...
                  A ; separated list of directories, each directory
                  is a directory of modules that replace upgradeable
                  modules in the runtime image
    --add-modules <module name>[,<module name>...]
                  root modules to resolve in addition to the initial module.
                  <module name> can also be ALL-DEFAULT, ALL-SYSTEM,
                  ALL-MODULE-PATH.
    --enable-native-access <module name>[,<module name>...]
                  modules that are permitted to perform restricted native operations.
                  <module name> can also be ALL-UNNAMED.
    --list-modules
                  list observable modules and exit
    -d <module name>
    --describe-module <module name>
                  describe a module and exit
    --dry-run     create VM and load main class but do not execute main method.
                  The --dry-run option may be useful for validating the
                  command-line options such as the module system configuration.
    --validate-modules
                  validate all modules and exit
                  The --validate-modules option may be useful for finding
                  conflicts and other errors with modules on the module path.
    -D<name>=<value>
                  set a system property
    -verbose:[class|module|gc|jni]
                  enable verbose output for the given subsystem
    -version      print product version to the error stream and exit
    --version     print product version to the output stream and exit
    -showversion  print product version to the error stream and continue
    --show-version
                  print product version to the output stream and continue
    --show-module-resolution
                  show module resolution output during startup
    -? -h -help
                  print this help message to the error stream
    --help        print this help message to the output stream
    -X            print help on extra options to the error stream
    --help-extra  print help on extra options to the output stream
    -ea[:<packagename>...|:<classname>]
    -enableassertions[:<packagename>...|:<classname>]
                  enable assertions with specified granularity
    -da[:<packagename>...|:<classname>]
    -disableassertions[:<packagename>...|:<classname>]
                  disable assertions with specified granularity
    -esa | -enablesystemassertions
                  enable system assertions
    -dsa | -disablesystemassertions
                  disable system assertions
    -agentlib:<libname>[=<options>]
                  load native agent library <libname>, e.g. -agentlib:jdwp
                  see also -agentlib:jdwp=help
    -agentpath:<pathname>[=<options>]
                  load native agent library by full pathname
    -javaagent:<jarpath>[=<options>]
                  load Java programming language agent, see java.lang.instrument
    -splash:<imagepath>
                  show splash screen with specified image
                  HiDPI scaled images are automatically supported and used
                  if available. The unscaled image filename, e.g. image.ext,
                  should always be passed as the argument to the -splash option.
                  The most appropriate scaled image provided will be picked up
                  automatically.
                  See the SplashScreen API documentation for more information
    @argument files
                  one or more argument files containing options
    --disable-@files
                  prevent further argument file expansion
    --enable-preview
                  allow classes to depend on preview features of this release
To specify an argument for a long option, you can use --<name>=<value> or
--<name> <value>.

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

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)

The output of the command executed signified that the java version installed in the system is 17.0.9.

We would also need to install Maven in our system using the below link −

https://maven.apache.org/download.cgi.

To get a more detailed view on how set up Maven, we can refer to the below link −

https://www.tutorialspoint.com/maven/maven_environment_setup.htm

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

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 2 − Next, we would install the IntelliJ editor to run the Selenium test. There are several editors available in the market for example: Eclipse, IntelliJ, Atom, and so on. Using these editors, we can start working on a Java project to start our test automation. Today, we will discuss how to set up our Selenium code in IntelliJ.

For IntelliJ installation, the latest version of Java should be installed.

Lets begin −

Step 1 − Navigate to the official website of IntelliJ (which is a product of Jetbrains) using the below link and then click on Download −

https://www.jetbrains.com/idea/.

Selenium Environment Setup 1

Step 2 − Once we navigate to the next page, we will get the option to download IntelliJ in various operating systems, like Windows, macOS, and Linux. Click on the tab based on the operating system you are currently using in your system.

IntelliJ comes in two versions, Paid and Community(which is free).

Selenium Environment Setup 2

We would download the Community version. For that we would navigate to the IntelliJ IDEA Community Edition section and then click on Download.

Selenium Environment Setup 3

After downloading was completed in the macOS, we dragged the IntelliJ IDEA CE file from the Downloads folder to Applications folder.

Step 3 − IntelliJ logo should display for a few seconds, and next the JETBRAINS COMMUNITY EDITION TERMS should appear. Click the checkbox to accept the terms and conditions, then click on Continue.

Step 4 − Welcome to IntelliJ IDEA should appear. Clicked on the New Project button.

Step 5 − Enter a name under Name: field. Select Language as Java, Build System as Maven, and JDK version, then click on Create.

Step 6 − Enter an ArtifactId and click on Create.

Step 7 − IntelliJ editor setup should be completed successfully.

Step 8 − Next, we would add the Selenium Maven dependencies from the below link −

https://mvnrepository.com

Selenium Environment Setup 4

Step 9 − Selected and clicked on a version link under the Central tab. We navigated to the Selenium Java>><version> page. Copied the dependency under Maven tab.

Selenium Environment Setup 5

Dependency example −

<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
   <groupId>org.seleniumhq.selenium</groupId>
   <artifactId>selenium-java</artifactId>
   <version>4.11.0</version>
</dependency>

Step 10 − Pasted the dependency copied in Step9 in the pom.xml file(available under the Maven Project created in the IntelliJ workspace).

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

Example

Code Implementation on Main.java class 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 15 secs
      driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);

      // URL launch 
      driver.get("https://www.google.com");

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

   }
}

Dependencies added in 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.11.0</version>
      </dependency>
   </dependencies>
</project>

Step 11 − Right click and select Run ‘Main.main()’ option. Waited till the run was completed.

Step 12 − Chrome browser got launched, and we had got the output in the console- Browser Title: Google with the message Process finished with exit code 0, signifying successful execution of the code.

Output

Browser title: Google

Process finished with exit code 0

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

To get a more detailed view on how set up Eclipse, we can refer to the below link −

https://www.tutorialspoint.com/eclipse/index.htm

Selenium can also be configured with Python for which we would require the PyCharm editor. To get a more detailed view on how set up PyCharm, we can refer to the below link −

https://www.tutorialspoint.com/pycharm/index.htm.

Let us take another example, where we would launch the browser and open an application, finally quit the browser.

Example

Code Implementation on MainBrowserQuit.java class file.

package org.example;

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

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

      // Initiate the Webdriver
      WebDriver driver = new ChromeDriver();
      
      // adding implicit wait of 15 secs
      driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);

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

   }
}

Output

Browser title after launch: Selenium Practice - Student Registration Form

Process finished with exit code 0

In the above example, we had first launched the Chrome browser then retrieved the browser title and then quitted the browser, and in the console received the message − Browser title after launch: Selenium Practice - Student Registration Form.

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

Thus we had successfully completed the environment setup for Selenium In this tutorial.

Advertisements