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.5 (codenamed "Ghost Flower"). Follow the official Twitter stream @HeadlessPhantom to get the frequent development updates.
-
Headless web testing. Lightning-fast testing without the browser is now possible! Various test frameworks such as Jasmine, Capybara, QUnit, WebDriver, YUI Test, BusterJS, FuncUnit, Robot Framework, and many others are supported.
-
Site scraping. Access and manipulate webpages with the standard DOM API, or with usual libraries like jQuery.
-
Page rendering. Capture the full contents, even with SVG and Canvas, to an image. Build server-side web graphics apps, from a screenshot service to a vector chart rasterizer.
-
Network monitoring. Monitor network activity, track resource loading, perform load-balancing tests, verify contents optimization, and many others.
- 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 (X11) on Linux, ideal for continuous integration systems. Also runs on Amazon EC2.
- 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 companion projects.
- Explore the complete documentation.
- Read tons of user articles on using PhantomJS.
- Join the mailing-list and discuss with other PhantomJS fans.