This tutorial will help you to set up Selenium with ChromeDriver on Ubuntu, and LinuxMint systems. This tutorial also includes an example of a Java program that uses a Selenium standalone server and ChromeDriver and runs a sample test case.

Advertisement

Read This: Setup Selenium with Firefox on Ubuntu

Step 1 – Prerequisites

Execute the following commands to install the required packages on your system. Here Xvfb (X virtual framebuffer) is an in-memory display server for a UNIX-like operating system (e.g., Linux). It implements the X11 display server protocol without any display. This is helpful for CLI applications like CI services.

sudo apt update 
sudo apt install -y unzip xvfb libxi6 libgconf-2-4 

Also, install Java on your system. Let’s install Oracle Java 8 on your system or use the below command to install OpenJDK.

sudo apt install default-jdk 

Step 2 – Install Google Chrome

Now install Latest Google chrome package on your system using the below list commands. Google chrome headless feature opens multipe doors for the automation.

sudo curl -sS -o - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add 
sudo bash -c "echo 'deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main' >> /etc/apt/sources.list.d/google-chrome.list" 
sudo apt -y update 
sudo apt -y install google-chrome-stable 

Step 3 – Installing ChromeDriver

You are also required to set up ChromeDriver on your system. ChromeDriver is a standalone server that implements WebDriver’s wire protocol for Chromium. The WebDriver is an open-source tool for the automated testing of web apps across multiple browsers.

Find out the Google chrome version installed on your system.

google-chrome --version 
Output
Google Chrome 94.0.4606.71

Next, visit the Chromedriver download page and download the matching version of chromedriver on your system.

In my case, Google Chrome 94 is running on my system. So download the following file. You must make sure to download the correct version of a file:

wget https://chromedriver.storage.googleapis.com/94.0.4606.61/chromedriver_linux64.zip 
unzip chromedriver_linux64.zip 

You can find the latest ChromeDriver on its official download page. Now execute below commands to configure ChromeDriver on your system.

sudo mv chromedriver /usr/bin/chromedriver 
sudo chown root:root /usr/bin/chromedriver 
sudo chmod +x /usr/bin/chromedriver 

Step 4 – Download Required Jar Files

The Selenium Server is required to run Remote Selenium WebDrivers. You need to download the Selenium standalone server jar file using the below commands or visit here to find the latest version of Jar file.

wget https://selenium-release.storage.googleapis.com/3.141/selenium-server-standalone-3.141.59.jar 
mv selenium-server-standalone-3.141.59.jar selenium-server-standalone.jar 

Also, download the testng-6.8.7.jar file to your system.

wget http://www.java2s.com/Code/JarDownload/testng/testng-6.8.7.jar.zip 
unzip testng-6.8.7.jar.zip 

Step 5 – Start Chrome via Selenium Server

Your server setup is ready. Start Chrome via a standalone selenium server using the Xvfb utility.

Run Chrome via Selenium Server

xvfb-run java -Dwebdriver.chrome.driver=/usr/bin/chromedriver -jar selenium-server-standalone.jar 

Use -debug option at end of the command to start the server in debug mode.

You can also Start Headless ChromeDriver by typing the below command on the terminal.

chromedriver --url-base=/wd/hub 

Your Selenium server is now running with Chrome. Use this server to run your test cases written in Selenium using the Google Chrome web browser. The next step is an optional step and doesn’t depend on Step 5.

Step 6 – Sample Java Program (Optional)

This is an optional step. It describes running a single test case using a Selenium standalone server and ChromeDriver. Let’s create a Java program using the Selenium server and Chrome Driver. This Java program will open a specified website URL and check if a defined string is present on the webpage or not.

Create a Java program by editing a file in a text editor.

vim TecAdminSeleniumTest.java 

Add the below content to the file.

You can change the URL “https://google.com” with any other URL of your choice, Then also change the search string like “I’m Feeling Lucky” used in the above Java program. Save your java program and execute it. First, you need to set the Java CLASSPATH environment variable including the selenium-server-standalone.jar and testng-6.8.7.jar. Then compile the java program and run it.

export CLASSPATH=".:selenium-server-standalone.jar:testng-6.8.7.jar" 
javac TecAdminSeleniumTest.java 
java TecAdminSeleniumTest 

You will see the results below. If the defined search string is found, You will get the message “Pass” and if the string is not found on the webpage, you will get the “Fail” message on the screen.

Selenium test case results

Share.

42 Comments

  1. Hello, thank you for the tutorial but the chrome browser didn’t start for me, it seems like it I started in headless mode
    when I run this command :
    “xvfb-run java -Dwebdriver.chrome.driver=/usr/bin/chromedriver -jar selenium-server-standalone.jar”
    I got this :
    11:52:18.535 INFO [GridLauncherV3.parse] – Selenium server version: 3.141.59, revision: e82be7d358
    11:52:18.615 INFO [GridLauncherV3.lambda$buildLaunchers$3] – Launching a standalone Selenium Server on port 4444
    2022-03-01 11:52:18.659:INFO::main: Logging initialized @324ms to org.seleniumhq.jetty9.util.log.StdErrLog
    11:52:18.900 INFO [WebDriverServlet.] – Initialising WebDriverServlet
    11:52:18.984 INFO [SeleniumServer.boot] – Selenium Server is up and running on port 4444

    No errors no crash but chrome didn’t start.

  2. Hello , thank you for the tutorial but the chrome browser didn’t start for me , it seems like it i started in headless mode,
    when i run this command :
    “xvfb-run java -Dwebdriver.chrome.driver=/usr/bin/chromedriver -jar selenium-server-standalone.jar”
    I got this :
    11:52:18.535 INFO [GridLauncherV3.parse] – Selenium server version: 3.141.59, revision: e82be7d358
    11:52:18.615 INFO [GridLauncherV3.lambda$buildLaunchers$3] – Launching a standalone Selenium Server on port 4444
    2022-03-01 11:52:18.659:INFO::main: Logging initialized @324ms to org.seleniumhq.jetty9.util.log.StdErrLog
    11:52:18.900 INFO [WebDriverServlet.] – Initialising WebDriverServlet
    11:52:18.984 INFO [SeleniumServer.boot] – Selenium Server is up and running on port 4444

    No errors no crash but chrome didn’t start

  3. Thanks for the excellent tutorial, I finished the Selenium project I was working on. I am using WSL and it used to launch my desktop browser (Brave) when running the AWS CLI SSO login, for example, but now the AWS CLI SSO login launches a Chrome window which doesn’t have any of my data saved in it like Brave does. Do you have any idea how I can reset so that WSL launches Brave again like before rather than Chrome? I deleted the chromedriver but that made no difference. Any advice is much appreciated 🙂

    • Turns out it was as simple as setting an environment variable named BROWSER with the value being the path to my Brave exe 🙂

  4. Manuel de la Fuente on

    This command is incorrect:

    sudo echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list

    It uses sudo which means it’s designed for non-root accounts, but the way it’s written the redirection happens before sudo or echo are run, which means it’s run as the current user, resulting in a “Permission denied” error. That command would only work if it’s run by root, but then you wouldn’t need sudo.

    For it to work for non-root accounts, the entire command has to be wrapped in a shell that is invoked with sudo:

    sudo bash -c "echo 'deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main' >> /etc/apt/sources.list.d/google-chrome.list"

  5. Victor Akintola on

    Hello Rahul,

    Its not working yet

    I run this cmd ——– xvfb-run java -Dwebdriver.chrome.driver=/usr/bin/chromedriver -jar selenium-server-standalone.jar

    I got this ——Error: Unable to access jarfile selenium-server-standalone.jar

    Regards
    V

    • Shan George on

      Use Version of selenium-server -standalone jar files.

      For eg: xvfb-run java -Dwebdriver.chrome.dr iver=/usr/bin/chromedriver -jar selenium-server-standalone-3.141.59.jar

  6. I don’t see browser running when I execute below command
    xvfb-run java -Dwebdriver.chrome.driver=/usr/bin/chromedriver -jar selenium-server-standalone3.13.0.jar
    Users your inputs please..

    • Browser will open, once you run the test case. In the given example, remove “chromeOptions.addArguments(“–headless”);” from script to launch a web browser.

  7. Input
    xvfb-run java -Dwebdriver.chrome.driver=/usr/bin/chromedriver -jar selenium-server-standalone-3.141.59.jar

    Output
    Command ‘xvfb-run’ not found, but can be installed with:
    apt install xvfb

    Input
    apt install xvfd

    Output
    E: Unable to find xvfd package

    Thanks 🙂

  8. radhakrishna on

    hi,

    I am executing my automation scripts on oneops cloud application. To execute these automation scripts we need to have chrome driver. In the oneops application we have Linux64 bit OS is available. For this OS, i downloaded the relevant chrome driver and placed in a specific path. In my automation script I gave this specific path. I developed a jar file with all my automation scripts using looper\jenkins. Now I am executing this jar file in the putty(linux) machine. However an error message chromedriver is not present in the specified path is displaying though the driver is present in the specified path.

    This chrome driver for Linux is of file type (not .exe ) and placed this driver in a path.

    I developed these automation scripts using selenium testng.

    Please let me know why this error message of chrome driver not present is displaying.

    Also if any one knows how to install chrome driver in oneops cloud application for Linux OS, please do let me know.

    Thanks

    Regards
    K.Radhakrishna Reddy

  9. Hello! Thanks for the great article. However I am quite stuck with the error below.

    PHP Fatal error: Uncaught PHPUnit_Extensions_Selenium2TestCase_WebDriverException: Expected browser binary location, but unable to find binary in default location, no ‘moz:firefoxOpti
    ons.binary’ capability provided, and no binary flag set on the command line

    I got both geckodriver and chromedriver on usr/bin/* .

    Thank you

  10. Thank you, your guide comes up first in google search results! congratulations! however, after following your steps, command “xvfb-run java -Dwebdriver.chrome.driver=/usr/bin/chromedriver -jar selenium-server-standalone.jar” gives me an error: “Error: Unable to access jarfile selenium-server-standalone.jar”

    • I have managed(I think so) to run it using line from comments below: “xvfb-run java -Dwebdriver.chrome.driver=/usr/bin/chromedriver -jar selenium-server-standalone-3.13.0.jar” but now I get new problems.
      When I try : “java TecAdminSeleniumTest” I get the error messages: “TecAdminSeleniumTest.java:3: error: package org.openqa.selenium does not exist
      import org.openqa.selenium.WebDriver”

  11. Hi, Thanks for the great article.

    Couple of corrections needed:
    1. Switch to root user from Step1
    2. Step 5: xvfb-run java -Dwebdriver.chrome.driver=/usr/bin/chromedriver -jar selenium-server-standalone-3.13.0.jar (version number missed out)
    3. Step 6: export CLASSPATH=”.:selenium-server-standalone-3.13.0.jar:testng-6.8.7.jar” (Selenium Server version number missed out)

    Could you please make this changes to your article?

    Thank you!

  12. HI ,
    I am trying to start chromedriver from linux server. Please help me on how to run command prompt. Getting exception like below
    ———————————–
    /usr/bin$ ./chromedriver
    Starting ChromeDriver 2.41.578700 (2f1ed5f9343c13f73144538f15c00b370eda6706) on port 9515
    Only local connections are allowed.
    ————————————————-

  13. Getting error :

    (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
    (Driver info: chromedriver=2.41.578700 (2f1ed5f9343c13f73144538f15c00b370eda6706),platform=Linux 4.4.0-1072-aws x86_64) (WARNING: The server did not provide any stacktrace information)

  14. Thank you!

    One note: At step 5 , to start the server, I had to include the version… xvfb-run java -Dwebdriver.chrome.driver=/usr/bin/chromedriver -jar selenium-server-standalone-3.13.0.jar

  15. Just wanna say this was really helpful. Although, for whatever reason, I needed to use ‘sudo -i’ before step 2, and sudo as a prefix for some commands.

  16. Why you do not show users comment on your website. Thanks, by the way, I will try this selenium installation guide.

Leave A Reply

Exit mobile version