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
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.
Download the latest script from my github repository and place the script in /etc/init.d/
.
Make the directory /usr/lib/headless-selenium
.
Download Selenium Server and place it in /usr/lib/headless-selenium
.
Make the directory /etc/headless-selenium
.
Place the file selenium.conf
in /etc/headless-selenium
.
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)
Create the directores up to /usr/lib/headless-selenium/profiles/firefox
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.
Put that Profile in /usr/lib/headless-selenium/profiles/firefox/selenium
.
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
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:
sudo /etc/init.d/headless-selenium status
Headless Selenium should be “running”
sudo /etc/init.d/headless-selenium restart
DISPLAY=:42 import -window root screenshot.png
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