(FORK, works with unmodified Qt 5.3) Scriptable Headless WebKit
Go to file
Ariya Hidayat f6abcfe676 Ask for a confirmation before initiating the build.
Although it is mentioned in http://phantomjs.org/build.html, many people
are not aware this, they compile from source (even if a binary package
is available) and get shocked to realize the build takes ages.
The build script is thus modified to give the initial warning.

Unattended build is still possible, just use --confirm flag.

2012-11-10 01:36:30 -08:00
deploy Ask for a confirmation before initiating the build. 2012-11-10 01:36:30 -08:00
examples Merge branch 'master' into 1.7 2012-09-22 20:25:23 -07:00
src Correcting keycodes sent for lowercase characters 2012-11-09 22:14:46 -08:00
test Correcting keycodes sent for lowercase characters 2012-11-09 22:14:46 -08:00
tools Make static build work on Linux. 2012-07-14 23:32:31 -07:00
website Moved to gh-pages branch. 2012-04-11 00:44:40 -07:00
.gitignore Git-ignoring debugging-helper on mac 2012-09-18 14:57:59 +01:00
CONTRIBUTING.md Contribution guide: highlight various aspects of communication. 2012-09-18 18:23:19 -07:00
ChangeLog Blazing Star. 2012-09-22 21:37:29 -07:00
LICENSE.BSD Long live PhantomJS! 2010-12-26 19:49:33 -08:00
README.md README: Clarify capture-able contents. 2012-11-09 22:09:37 -08:00
build.sh Ask for a confirmation before initiating the build. 2012-11-10 01:36:30 -08:00
phantomjs.pro Import the old, working prototype. 2010-12-26 20:15:19 -08:00
third-party.txt Import QCommandLine 0.3.0 into our source tree. 2012-09-03 05:48:58 -07:00


PhantomJS - Scriptable Headless WebKit

PhantomJS (www.phantomjs.org) is a headless WebKit scriptable with JavaScript or CoffeeScript. It is used by hundreds of developers and dozens of organizations for web-related development workflow.

The latest stable release is version 1.7 (codenamed "Blazing Star"). Follow the official Twitter stream @PhantomJS to get the frequent development updates.

Note: Please do not create a GitHub pull request without reading the Contribution Guide first. Failure to do so may result in the rejection of the pull request.

Use Cases

  • Headless web testing. Lightning-fast testing without the browser is now possible! Various test frameworks such as Jasmine, Capybara, QUnit, Mocha, WebDriver, YUI Test, BusterJS, FuncUnit, Robot Framework, and many others are supported.
  • Page automation. Access and manipulate web pages with the standard DOM API, or with usual libraries like jQuery.
  • Screen capture. Programmatically capture web contents, including CSs, SVG and Canvas. Build server-side web graphics apps, from a screenshot service to a vector chart rasterizer.
  • Network monitoring. Automate performance analysis, track page loading and export as standard HAR format.


  • Multiplatform, available on major operating systems: Windows, Mac OS X, Linux, other Unices.
  • Fast and native implementation of web standards: DOM, CSS, JavaScript, Canvas, SVG. No emulation!
  • Pure headless (no X11) on Linux, ideal for continuous integration systems. Also runs on Amazon EC2, Heroku, Iron.io.
  • Easy to install: Download, unpack, and start having fun in just 5 minutes.


PhantomJS needs not be used only as a stand-alone tool. Check also some excellent related projects:

  • CasperJS enables easy navigation scripting and common high-level testing.
  • Poltergeist allows running Capybara tests headlessly.
  • Guard::Jasmine automatically tests Jasmine specs on Rails when files are modified.
  • GhostDriver complements Selenium tests with a PhantomJS WebDriver implementation.
  • PhantomRobot runs Robot Framework acceptance tests in the background via PhantomJS.

and many others related projects.


PhantomJS is free software/open source, and is distributed under the BSD license. It contains third-party code, see the included third-party.txt file for the license information on third-party code.

PhantomJS is created and maintained by Ariya Hidayat (Twitter: @ariyahidayat), with the help of many contributors.