(FORK, works with unmodified Qt 5.3) Scriptable Headless WebKit
Go to file
Ariya Hidayat 8cabfed4b3 Remove GIF format for screen capture export (render).
This is to reduce maintenance burden.  A GIF representation of a web
page can be produced by converting its PNG capture. There are numerous
third-party tools which can do the job better (optimized palette,
minimized loss, etc).

2014-08-23 09:20:20 -07:00
deploy Vagrant setup: Don't clone PhantomJS into Git build directory. 2013-01-09 01:03:27 -08:00
examples run-jasmine example: Ensure exit code is always returned. 2014-08-20 20:56:15 -07:00
rpm Add missing RPM spec file names; update changelog. 2014-04-22 21:38:38 -07:00
src Remove GIF format for screen capture export (render). 2014-08-23 09:20:20 -07:00
test Remove GIF format for screen capture export (render). 2014-08-23 09:20:20 -07:00
tools Remove misc references to CoffeeScript. 2014-08-19 20:37:06 -07:00
.gitignore Update .gitignore for Qt 5.3. 2014-08-19 07:20:48 -07:00
.travis.yml Travis CI: Get more dependencies for building Qt 5. 2014-07-28 06:51:35 -07:00
CONTRIBUTING.md CONTRIBUTING.md: convenient => confident 2013-08-15 12:05:41 +02:00
ChangeLog ChangeLog for 1.9.7. 2014-07-30 01:29:20 -07:00
LICENSE.BSD Long live PhantomJS! 2010-12-26 19:49:33 -08:00
README.md Remove misc references to CoffeeScript. 2014-08-19 20:37:06 -07:00
build.cmd Add build script for Windows 2014-08-18 23:35:27 +04:00
build.sh 80-column compliance for build.sh messages. 2014-08-19 07:20:50 -07:00
phantomjs.pro Import the old, working prototype. 2010-12-26 20:15:19 -08:00
third-party.txt Remove GIF format for screen capture export (render). 2014-08-23 09:20:20 -07:00


PhantomJS - Scriptable Headless WebKit

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

The latest stable release is version 1.9 (codenamed "Sakura"). 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, and other Unices.
  • Fast and native implementation of web standards: DOM, CSS, JavaScript, Canvas, and SVG. No emulation!
  • Pure headless (no X11) on Linux, ideal for continuous integration systems. Also runs on Amazon EC2, Heroku, and 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.
  • Mocha-PhantomJS run Mocha tests using 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.