Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save SiZapPaaiGwat/37c14d1df6ccae118daf78ed7c7771eb to your computer and use it in GitHub Desktop.
Save SiZapPaaiGwat/37c14d1df6ccae118daf78ed7c7771eb to your computer and use it in GitHub Desktop.
Headless Selenium on CentOS 6.3 (Mac XWindows / X11 / Xvfb / Headless Firefox / Selenium howto)

XWindows for Headless Selenium

X Wing art by Paul Harckham

How to set up a Headless Selenium Testing environment for CentOS 6.3.

On your CentOS 6.3 host

Follow these steps to set up a CentOS 6.3 host to run headless Selenium tests with Firefox.

  1. sudo yum -y install firefox Xvfb libXfont Xorg
  2. sudo yum -y groupinstall "X Window System" "Desktop" "Fonts" "General Purpose Desktop" (installation takes a few minutes)
  3. Launch an XWindows Virtual Frame Buffer(XVFB) session on display port 99: Xvfb :99 -ac -screen 0 1280x1024x24 &
  4. Tell all XWindows applications in this terminal session to use the new Xvfb display port: export DISPLAY=:99
  5. Start the Selenium server, eg: java -jar /opt/selenium-server-standalone.jar &
  6. Now start your Selenium tests. The Selenium server should spawn a headless Firefox instance and your tests should run successfully.

On your Mac

How to install an XWindows terminal so that you can connect to your CentOS 6.3 host and run your Selenium tests in a graphical Web browser. This capability will be invaluable whenever you need to debug Selenium tests on one of your remote hosts.

Running Selenium tests in the GUI via XWindows

  1. Open XQuartz and ssh to your CentOS host using the -X option, eg: ssh -X [email protected]
  2. On the remote host, type export DISPLAY=localhost:10.0
  3. Start the Selenium server in the same terminal session, eg: java -jar /opt/selenium-server-standalone.jar &
  4. Now simply run your tests and you will see Firefox start up and run in the GUI, just like on the destkop!

Note that it's much slower to execute the tests under XWindows vs. Xvfb.

Connecting to a remote XWindows host

  1. Open XQuartz and ssh to your CentOS host using the -X option, eg: ssh -X [email protected]
  2. On the remote host, type export DISPLAY=localhost:10.0
  3. On the remote host, type firefox & and after a long pause you should see Firefox start up in a GUI window.

Installing XQuartz

XQuartz replaces the old X11 terminal that was part of Mac OS up until Mountain Lion. If you have an older version of Mac OS X then X11 should already be installed, and you can mentally replace "XQuartz" with "X11" throughout these instructions.

  1. Get XQuartz here. http://xquartz.macosforge.org/landing/ (The download will take a few minutes.)
  2. Run the installer.
  3. Log out and log back in.
  4. That's it! XQuartz should now be installed.

Further Reading

  1. Xvfb + Firefox
  2. How to connect to remote X11 hosts from a Mac
  3. Headless Cucumbers And Capybaras With Selenium And Hudson
  4. Centos: Installing graphical X Window System
  5. Problems With Bundling Xvfb Into Application on StackOverflow
  6. XQuartz Users FAQ
  7. Xvfb Wikipedia entry
  8. X-Wing art by Paul Harckham
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment