Headless Browsers

An incomplete list of headless web browsers

Name About Supported Languages License Latest Release
PhantomJS PhantomJS is a headless WebKit scriptable with a JavaScript API. It has fast and native support for various web standards: DOM handling, CSS selector, JSON, Canvas, and SVG. JavaScript, Python, Ruby, Java, C#, Haskell, Objective-C, Perl, PHP, R(via Selenium) BSD January 23, 2016
CasperJS CasperJS is an open source navigation scripting & testing utility written in Javascript for the PhantomJS WebKit headless browser and SlimerJS (Gecko). JavaScript MIT February 5, 2016
Zombie.js Zombie.js is a lightweight framework for testing client-side JavaScript code in a simulated environment. No browser required. JavaScript
Lotte Lotte is a headless, automated testing framework built on top of PhantomJS and inspired by Ghostbuster. JavaScript
Ghostbuster Automated browser testing via phantom.js, with all of the pain taken out! That means you get a real browser, with a real DOM, and can do real testing! JavaScript
HeadlessBrowser A very miniature headless browser, for testing the DOM on Node.js JavaScript
browser.rb Headless Ruby browser on top of Nokogiri and TheRubyRacer Ruby
Selenium Selenium is a suite of tools to automate web browsers across many platforms. JavaScript, Python, Ruby, Java, C#, Haskell, Objective-C, Perl, PHP, R Apache License 2.0 October 9, 2015
jBrowserDriver A Selenium-compatible headless browser which is written in pure Java. WebKit-based. Works with any of the Selenium Server bindings. Java Apache April 7, 2016
SlimerJS SlimerJS is similar to PhantomJs, except that it runs Gecko, the browser engine of Mozilla Firefox, instead of Webkit (And it is not yet truly headless). JavaScript
trifleJS A headless Internet Explorer browser using the .NET WebBrowser Class with a Javascript API running on the V8 engine. JavaScript
DalekJS Automated cross browser testing with JavaScript. JavaScript
HtmlUnit HtmlUnit is a "GUI-Less browser for Java programs". Java Apache November 12, 2015
ghost.py ghost.py is a webkit web client written in python. Python MIT January 11, 2016
twill twill is a simple language that allows users to browse the Web from a command-line interface. Python
Awesomium Chromium-based headless browser engine C++, .NET
SimpleBrowser A flexible and intuitive web browser engine designed for automation tasks. Built on the .Net 4 framework. .NET
Watir-WebDriver The most elegant way to use Selenium WebDriver with ruby. Ruby
Spynner Programmatic web browsing module with AJAX support for Python Python GPL v3.0 Decemeber 4, 2014
WatiN Web Application Testing In .Net .NET
BrowserKit BrowserKit simulates the behavior of a web browser. PHP
SST SST (selenium-simple-test) is a web test framework that uses Python to generate functional browser-based tests. Python
stanislaw Python headless browser testing Python
Jabba-Webkit Jabba's headless webkit browser for scraping AJAX-powered webpages. Python N/A October 23, 2014
Jaunt Java Web Scraping & Automation API Java
Geb Geb is a browser automation solution. Groovy
Jasmine-Headless-Webkit jasmine-headless-webkit uses the QtWebKit widget to run your specs without needing to render a pixel. Python, JavaScript, Ruby
phantompy Phantompy is a headless WebKit engine with powerful pythonic api build on top of Qt5 Webkit Python BSD abandoned
Python-Webkit Python-Webkit is a python extension to Webkit to add full, complete access to Webkit's DOM Python
Splinter Splinter is an open source tool for testing web applications using Python. It lets you automate browser actions, such as visiting URLs and interacting with their items. Python
Browserjet Headless webkit browser with node.js interface. JavaScript
Headless Headless browser support for fast web acceptance testing in .Net .NET
browser-launcher detect and launch browser versions, headlessly or otherwise JavaScript
headless_browser Headless browser based on WebKit written in C++. C++
Guillotine A .NET headless browser, written in C#. .NET
benv Stub a browser environment in node.js and headlessly test your client-side code. JavaScript
grope A non-GUI library to represent browser environment using WebKit Framework + RubyCocoa Ruby
RoboBrowser A simple, Pythonic library for browsing the web without a standalone web browser. Python
MechanicalSoup A Python library for automating interaction with websites. Python
mechanize Stateful programmatic web browsing. Python
jedi-crawler Lightsabing Node/PhantomJS crawler; scrape dynamic content : without the hassle JavaScript
Splash Splash is a javascript rendering service with an HTTP API. It's a lightweight browser with an HTTP API, implemented in Python using Twisted and QT. Any BSD April 3, 2016
Nightmare Nightmare is a high-level browser automation library built as an easier alternative to PhantomJS. JavaScript
Erik Headless browser on top of Kanna and WebKit. Swift
Ui4j Ui4j is a web-automation library for Java. It is a thin wrapper library around the JavaFx WebKit Engine, and can be used for automating the use of web pages and for testing web pages. Java MIT Janurary 20, 2016
WKZombie Functional headless browser (with JSON support) for iOS using WebKit and hpple/libxml2. Swift