This is a service written easily set up a headless selenium instance.
Switch branches/tags
Nothing to show
Pull request Compare This branch is even with generalredneck:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Headless Selenium

What do I need?

Yes there are a few dependencies for this to work. The following list (possibly incomplete) is everything that I can think of off the top of my head:

  • Java
  • Xvfb
  • Selenium Server
  • Firefox
  • Linux

Headless Selenium Service

You should be able to get all of these things from your local Linux distribution. Notice, I tend to sway for Debian based Linux distributions.

How do I install?

Step 1

Download the latest script from my github repository and place the script in /etc/init.d/.

Step 2

Make the directory /usr/lib/headless-selenium.

Step 3

Download Selenium Server and place it in /usr/lib/headless-selenium.

Step 4

Make the directory /etc/headless-selenium.

Step 5

Place the file selenium.conf in /etc/headless-selenium.

Step 6

Uncomment and edit the variable SELENIUM_JAR in /etc/headless-selenium/selenium.conf with the name of the selenium server you downloaded. (At the time I wrote the service the latest was 2.24.1)

Step 7

Create the directores up to /usr/lib/headless-selenium/profiles/firefox

Step 8

Create a selenium profile using firefox. There are several tutorials out there (particularly handy one). I've taken the liberty of creating a default one that you can do what you want to with.

Step 9

Put that Profile in /usr/lib/headless-selenium/profiles/firefox/selenium.

Step 10 (optional)

Uncomment the variable SELENIUM_PROFILE_DIR in /etc/headless-selenium/selenium.conf

Note: The default is actually /usr/lib/headless-selenium/profiles/firefox/selenium so you won't need to change it, however, you could save doing step 9 by changing this variable to /home/YOURUSERNAME/.mozilla/firefox/YOURSELENIUMDIR

Step 11

Start the service! sudo /etc/init.d/headless-selenium start


sudo /etc/init.d/headless-selenium start
sudo /etc/init.d/headless-selenium stop
sudo /etc/init.d/headless-selenium restart
sudo /etc/init.d/headless-selenium status


You may need to debug whether headless selenium is running. The process that is best used is the following:

Check service status:

sudo /etc/init.d/headless-selenium status

Headless Selenium should be “running”

Restart service:

sudo /etc/init.d/headless-selenium restart

Get a screenshot of Xvfb

DISPLAY=:42 import -window root screenshot.png

Check for output printed to the logs:

sudo tail -f /var/log/selenium/selenium-output.log

Note: There are several different logs in /var/log/selenium which may be useful. Check to see if headless selenium is running via a process manager:

ps -ef | grep selenium
ps -ef | grep Xvfb