Full web stack
No browser required

PhantomJS is a headless WebKit with JavaScript API. It has fast and native support for various web standards: DOM handling, CSS selector, JSON, Canvas, and SVG.
PhantomJS is created by Ariya Hidayat.

Download v1.5 Get started

Simple Javascript example

console.log('Loading a web page');
var page = new WebPage();
var url = "http://www.phantomjs.org/";
page.open(url, function (status) {
    //Page is loaded!
    phantom.exit();
});

Community:

PhantomJS is an optimal solution for

Headless Website Testing

Run functional tests with frameworks such as Jasmine, QUnit or CasperJS.
Learn more

Site Scraping

Access and manipulate webpages with the standard DOM API, or with usual libraries like jQuery.
Learn more

SVG Rendering

Render SVG graphics with the built-in Webkit rendering engine.
Learn more

Network Monitoring

Monitor page speed loading. Export as standard HAR files.
Learn more

PhantomJS can also integrate with webservices (XML, JSONP, YQL) and with test frameworks (Jasmine, QUnit). See more examples

Fork me on GitHub