Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
How to install Chrome, ChromeDriver and Selenium on CentOS. Plus a sample scraping script.
#!/usr/bin/env bash
# Versions
# Remove existing downloads and binaries so we can start from scratch.
sudo yum remove google-chrome-stable
rm ~/selenium-server-standalone-*.jar
rm ~/
sudo rm /usr/local/bin/chromedriver
sudo rm /usr/local/bin/selenium-server-standalone.jar
# Install dependencies.
sudo yum update
sudo yum install -y unzip openjdk-8-jre-headless xvfb libxi6 libgconf-2-4
# Install Chrome.
vi /etc/yum.repos.d/google-chrome.repo
# Make sure you have below info in the file(remove hash).
yum install -y google-chrome-stable
# Install ChromeDriver.
wget -N -P ~/
unzip ~/ -d ~/
rm ~/
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$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
import time
from selenium import webdriver
import os
from selenium.webdriver.common.keys import Keys
# "$ xvfb-run python", this is how you run this script
chrome_options = webdriver.ChromeOptions()
# below trick saved my life
# set the folder where you want to save your file
prefs = {'download.default_directory' : os.getcwd()}
chrome_options.add_experimental_option('prefs', prefs)
# Optional argument, if not specified will search path.
driver = webdriver.Chrome('/usr/local/bin/chromedriver',chrome_options=chrome_options)
# Scraping steps
driver.find_element_by_css_selector("#content > div.section > table > tbody > tr.odd > td:nth-child(1) > span > a:nth-child(1)").click()
Copy link

zakabluk commented Oct 5, 2018

This doesn't work for CentOS 7.5.1804. These packages xvfb libxi6 libgconf-2-4 not exist in standard repository. Need add changes.

Copy link

paulalex commented Oct 10, 2018

This worked nicely for me ran as a shell provisioner for packer, I am bootstrapping the centos installation with a kickstart file. Happy to give you the scripts if you are interested.

Copy link

shtiyu commented Dec 5, 2018

worked fine for me, thx!!

Copy link

Coldsp33d commented Apr 12, 2019

@paulalex yes, please!

Copy link

briansanchez commented Aug 10, 2019

thank you!.. for sharing.

Copy link

evandonovan commented Dec 4, 2019

On CentOS 7.7.1908, I didn't need the following packages: libxi6 libgconf-2-4.

The X11 packages I needed were:

yum install xorg-x11-server-Xvfb dbus-x11

The former of those installed various X11 dependencies. I'm not 100% sure that the dbus one was needed.

I had already installed Selenium for Python via Pip using:

pip install selenium

Therefore, I didn't need all the Selenium standalone instructions, just the instructions on getting the Chromedriver itself.

Note: this issue explains the reason for the --no-sandbox parameter: theintern/intern#878

Copy link

8key commented Oct 15, 2020

It was useful, thank you!

Copy link

8key commented Oct 15, 2020

DO you know what --no-sandbox does?

Copy link

bhuang27 commented Mar 11, 2021

Hi, I get a 404 error when trying to access "baseurl=". Is the baseurl necessary to install Chrome?

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