Headless Browsers
A list of (almost) all headless web browsers in existence
A web browser without a graphical user interface, controlled programmatically. Used for automation, testing, and other purposes.
Name | About | Supported Languages |
---|---|---|
Awesomium | Chromium-based headless browser engine | C++, .NET |
benv | Stub a browser environment in node.js and headlessly test your client-side code. | JavaScript |
browser-launcher | Detect and launch browser versions, headlessly or otherwise | JavaScript |
browser.rb | Headless Ruby browser on top of Nokogiri and TheRubyRacer | Ruby |
Browserjet | Headless webkit browser with node.js interface. | JavaScript |
BrowserKit | BrowserKit simulates the behavior of a web browser. | PHP |
CasperJS | CasperJS is an open source navigation scripting & testing utility written in Javascript for the PhantomJS WebKit headless browser and SlimerJS (Gecko). | JavaScript |
DalekJS | Automated cross browser testing with JavaScript. | JavaScript |
Erik | Headless browser on top of Kanna and WebKit. | Swift |
Geb | Geb is a browser automation solution. | Groovy |
ghost.py | ghost.py is a webkit web client written in python. | Python |
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 |
grope | A non-GUI library to represent browser environment using WebKit Framework + RubyCocoa | Ruby |
Guillotine | A .NET headless browser, written in C#. | .NET |
Headless | Headless browser support for fast web acceptance testing in .Net | .NET |
headless_browser | Headless browser based on WebKit written in C++. | C++ |
HeadlessBrowser | A very miniature headless browser, for testing the DOM on Node.js | JavaScript |
HtmlUnit | HtmlUnit is a "GUI-Less browser for Java programs". | Java |
Jabba-Webkit | Jabba's headless webkit browser for scraping AJAX-powered webpages. | Python |
Jasmine-Headless-Webkit | jasmine-headless-webkit uses the QtWebKit widget to run your specs without needing to render a pixel. | Python, JavaScript, Ruby |
Jaunt | Java Web Scraping & Automation API | Java |
jBrowserDriver | A Selenium-compatible headless browser which is written in pure Java. WebKit-based. Works with any of the Selenium Server bindings. | Java |
jedi-crawler | Lightsabing Node/PhantomJS crawler; scrape dynamic content : without the hassle | JavaScript |
Lotte | Lotte is a headless, automated testing framework built on top of PhantomJS and inspired by Ghostbuster. | JavaScript |
MechanicalSoup | A Python library for automating interaction with websites. | Python |
mechanize | Stateful programmatic web browsing. | Python |
Nightmare | Nightmare is a high-level browser automation library built as an easier alternative to PhantomJS. | JavaScript |
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) |
phantompy | Phantompy is a headless WebKit engine with powerful pythonic api build on top of Qt5 Webkit | Python |
Python-Webkit | Python-Webkit is a python extension to Webkit to add full, complete access to Webkit's DOM | Python |
RoboBrowser | A simple, Pythonic library for browsing the web without a standalone web browser. | Python |
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 |
SimpleBrowser | A flexible and intuitive web browser engine designed for automation tasks. Built on the .Net 4 framework. | .NET |
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 |
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 |
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 |
Spynner | Programmatic web browsing module with AJAX support for Python | Python |
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 |
trifleJS | A headless Internet Explorer browser using the .NET WebBrowser Class with a Javascript API running on the V8 engine. | JavaScript |
twill | Twill is a simple language that allows users to browse the Web from a command-line interface. | Python |
WatiN | Web Application Testing In .Net | .NET |
Watir-WebDriver | The most elegant way to use Selenium WebDriver with ruby. | Ruby |
WKZombie | Functional headless browser (with JSON support) for iOS using WebKit and hpple/libxml2. | Swift |
X-RAY | Supports strings, arrays, arrays of objects, nested object structures, selector API, pagination, crawler, concurrency, throttles, delays, timeouts, and pluggable drivers (PhantomJS, HTTP) | JavaScript |
Zombie.js | Zombie.js is a lightweight framework for testing client-side JavaScript code in a simulated environment. No browser required. | JavaScript |