-
-
Save ziadoz/3e8ab7e944d02fe872c3454d17af31a5 to your computer and use it in GitHub Desktop.
#!/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 |
-Dwebdriver.chrome.logfile=chrome.log
parameter might be useful if you want to check the chrome logs:
xvfb-run java -Dwebdriver.chrome.logfile=chrome.log -Dwebdriver.chrome.driver=/usr/local/bin/chromedriver -jar /usr/local/bin/selenium-server-standalone.jar
this is a very good friend.
-Dwebdriver.chrome.logfile=chrome.log
parameter might be useful if you want to check the chrome logs:xvfb-run java -Dwebdriver.chrome.logfile=chrome.log -Dwebdriver.chrome.driver=/usr/local/bin/chromedriver -jar /usr/local/bin/selenium-server-standalone.jar
Thank you @SerheyDolgushev
You can get the latest version of selenium as following
SELENIUM_STANDALONE_JAR=`curl https://selenium-release.storage.googleapis.com | xq | jq 'last(.ListBucketResult|.Contents|.[]|.Key| select(test(".*selenium-server-standalone.*.jar")))`
wget -N https://selenium-release.storage.googleapis.com/$SELENIUM_STANDALONE_JAR -P ~/
Thank you!!
Very helpful, thanks!
GREAT JOB - HELPED US 5 minutes before 12 :) ... I'll share this article in my networks. ... thank you
Thank you so much man!!
Very grateful!)
This helps me a lot. Thank you.
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.
@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!
@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
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
?
Hello catch this erorr all the time selenium.common.exceptions.WebDriverException: Message: unknown error: DevToolsActivePort file doesn't exist