Skip to content

Instantly share code, notes, and snippets.

@ziadoz
Last active November 7, 2024 19:48
Show Gist options
  • Save ziadoz/3e8ab7e944d02fe872c3454d17af31a5 to your computer and use it in GitHub Desktop.
Save ziadoz/3e8ab7e944d02fe872c3454d17af31a5 to your computer and use it in GitHub Desktop.
Install Chrome, ChromeDriver and Selenium on Ubuntu 16.04
#!/usr/bin/env bash
# https://developers.supportbee.com/blog/setting-up-cucumber-to-run-with-Chrome-on-Linux/
# https://gist.github.com/curtismcmullan/7be1a8c1c841a9d8db2c
# https://stackoverflow.com/questions/10792403/how-do-i-get-chrome-working-with-selenium-using-php-webdriver
# https://stackoverflow.com/questions/26133486/how-to-specify-binary-path-for-remote-chromedriver-in-codeception
# https://stackoverflow.com/questions/40262682/how-to-run-selenium-3-x-with-chrome-driver-through-terminal
# https://askubuntu.com/questions/760085/how-do-you-install-google-chrome-on-ubuntu-16-04
# Versions
CHROME_DRIVER_VERSION=`curl -sS https://chromedriver.storage.googleapis.com/LATEST_RELEASE`
SELENIUM_STANDALONE_VERSION=3.9.1
SELENIUM_SUBDIR=$(echo "$SELENIUM_STANDALONE_VERSION" | cut -d"." -f-2)
# Remove existing downloads and binaries so we can start from scratch.
sudo apt-get remove google-chrome-stable
rm ~/selenium-server-standalone-*.jar
rm ~/chromedriver_linux64.zip
sudo rm /usr/local/bin/chromedriver
sudo rm /usr/local/bin/selenium-server-standalone.jar
# Install dependencies.
sudo apt-get update
sudo apt-get install -y unzip openjdk-8-jre-headless xvfb libxi6 libgconf-2-4
# Install Chrome.
sudo curl -sS -o - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add
sudo echo "deb https://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list
sudo apt-get -y update
sudo apt-get -y install google-chrome-stable
# Install ChromeDriver.
wget -N https://chromedriver.storage.googleapis.com/$CHROME_DRIVER_VERSION/chromedriver_linux64.zip -P ~/
unzip ~/chromedriver_linux64.zip -d ~/
rm ~/chromedriver_linux64.zip
sudo mv -f ~/chromedriver /usr/local/bin/chromedriver
sudo chown root:root /usr/local/bin/chromedriver
sudo chmod 0755 /usr/local/bin/chromedriver
# Install Selenium.
wget -N https://selenium-release.storage.googleapis.com/$SELENIUM_SUBDIR/selenium-server-standalone-$SELENIUM_STANDALONE_VERSION.jar -P ~/
sudo mv -f ~/selenium-server-standalone-$SELENIUM_STANDALONE_VERSION.jar /usr/local/bin/selenium-server-standalone.jar
sudo chown root:root /usr/local/bin/selenium-server-standalone.jar
sudo chmod 0755 /usr/local/bin/selenium-server-standalone.jar
#!/usr/bin/env bash
# Run Chrome via Selenium Server
start-chrome() {
xvfb-run java -Dwebdriver.chrome.driver=/usr/local/bin/chromedriver -jar /usr/local/bin/selenium-server-standalone.jar
}
start-chrome-debug() {
xvfb-run java -Dwebdriver.chrome.driver=/usr/local/bin/chromedriver -jar /usr/local/bin/selenium-server-standalone.jar -debug
}
# Run Chrome Headless
start-chrome-headless() {
chromedriver --url-base=/wd/hub
}
# Start
# start-chrome
# start-chrome-debug
# start-chrome-headless
@system-ini
Copy link

Very grateful!)

@hanjuangxyz
Copy link

This helps me a lot. Thank you.

@sandeshmms
Copy link

sandeshmms commented Sep 15, 2021

I am using AWS EC2 Ubuntu instance and I am getting java.lang.IllegalStateException: The driver executable must exist: /usr/local/bin/chromedriver. Any idea how to resolve it ? I have also made the chromedriver as executable using sudo chown root:root /usr/local/bin/chromedriver and sudo chmod 0755 /usr/local/bin/chromedriver and sudo chmod 777 /usr/local/bin/chromedriver. Also, my driver is placed at /usr/local/bin which is part of Ubuntu's PATH variable. Can you plesse guide me because I am stuck with this for the past few days and no solution yet.

@manjotsk
Copy link

@sandeshmms Can you please share the stack trace? Mostly it is due to the wrong path specified in web driver properties, or the wrong property key!

@sandeshmms
Copy link

sandeshmms commented Sep 17, 2021

@manjotsk:
Below is the stack trace:
32101 [ERROR] testing.TC_003.bmeth[org.testng.TestRunner@6fcd2e32, org.testng.xml.XmlTest@5f8b73c7, public void testing.TC_003.uabc() throws java.lang.InterruptedException, Ljava.lang.Object;@28e4e9e1, [TestResult name={null} status=CREATED method=TC_003.uabc()[pri:0, instance:testing.TC_003@432038ec] output={null}] Time elapsed: 1.758 s <<< FAILURE!
java.lang.IllegalStateException: The driver executable must exist: /usr/local/bin/chromedriver

@cstenkamp
Copy link

Shouldn't it be

sudo curl -sS -o - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add
echo "deb https://dl.google.com/linux/chrome/deb/ stable main" | sudo tee -a /etc/apt/sources.list.d/google-chrome.list

?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment