Ghost Driver is an implementation of the Remote WebDriver Wire protocol, using PhantomJS as back-end
JavaScript Java Shell Groovy
Pull request Compare This branch is 467 commits behind detro:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Ghost Driver

Ghost Driver is a pure JavaScript implementation of the WebDriver Wire Protocol for PhantomJS. It's going to be a Remote WebDriver that uses PhantomJS as back-end.


  • Under development / almost ready for 1.0
  • ~80% of the WireProtocol currently implemented
  • You can monitor development progress at this Google Spreadsheet
  • Core released to get people interested and get contributions
  • Don't raise BUGS: send PULL REQUESTS pleaase!
  • Version 1.0 will implement all the commands EXCEPT the ones related with Mobile WebDrivers (see spreadsheet above)

Presentation and Slides

In April 2012 I (Ivan De Marino) presented GhostDriver at the Selenium Conference: slides and video.


How to use it

Check out the ghostdriver-dev branch of PhantomJS, and build it (I assume you know Git).

There is plenty to do before this is usable, but if you can't wait to try PhantomJS's speed when it acts as a RemoteWebDriver Server, do the following:

  1. Start GhostDriver on a terminal:

    $> phantomjs ghostdriver/src/main.js
    Ghost Driver running on port 8080
  2. Build and Launch the test suite (written in Java, built with Gradle):

    $> cd ghostdriver/test
    $> ./gradlew test

Reasoning: pros and cons

Pros of using an Headless browser for your Selenium testing

  • Speed: makes development faster
  • Speed: makes THE developer happier
  • Speed: makes leaves more time for beer, video-games, cycling or whatever you fancy
  • ...

Cons of using an Headless browser for your Selenium testing

  • PhantomJS is not a "Real" Browser, but "just" very very close to one


You can contribute testing it and reporting bugs and issues, or submitting Pull Requests. Any help is welcome, but bear in mind the following base principles:

  • Squash your commits by theme: I prefer a clean, readable log
  • Maintain consistency with the code-style you are surrounded by
  • If you are going to make a big, substantial change, let's discuss it first


GhostDriver is distributed under BSD License.