Skip to content

Instantly share code, notes, and snippets.

Forked from ziadoz/
Last active October 17, 2023 02:37
Show Gist options
  • Save xiaol825/625b94f97c0580c0586ded2b8f0d76e2 to your computer and use it in GitHub Desktop.
Save xiaol825/625b94f97c0580c0586ded2b8f0d76e2 to your computer and use it in GitHub Desktop.
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

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

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