browser headless-browsers Testing automation
Need help with HeadlessBrowsers?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.
dhamaniasad

Description

A list of (almost) all headless web browsers in existence

5.2K Stars 370 Forks Creative Commons Zero v1.0 Universal 125 Commits 4 Opened issues

Services available

Need anything else?

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.

Browser engines

These browser engines fully render web pages or run JavaScript in a virtual DOM

Name

About Supported Languages License
Chromium Embedded Framework CEF is a open source project based on the Google Chromium project. JavaScript
Erik Headless browser on top of Kanna and WebKit. Swift
jBrowserDriver A Selenium-compatible headless browser which is written in pure Java. WebKit-based. Works with any of the Selenium Server bindings. Java
PhantomJS [Unmaintained] 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)
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
Surf Surf is an open source project that implements a virtual web browser that can be controlled programatically Go

Multi drivers

These libraries can control multiple browser engines (typically using Selenium)

Name

About Supported Languages License
CasperJS [Unmaintained] CasperJS is an open source navigation scripting & testing utility written in Javascript for the PhantomJS WebKit headless browser and SlimerJS (Gecko). JavaScript
Geb Geb is a Groovy interface to WebDriver. Groovy
Playwright Playwright is a Node library to automate the Chromium, WebKit and Firefox browsers with a single API TypeScript
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
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
SST SST (selenium-simple-test) is a web test framework that uses Python to generate functional browser-based tests. Python
Watir The most elegant way to use Selenium WebDriver with ruby. Ruby

PhantomJS drivers

These libraries control PhantomJS

Name

About Supported Languages License
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
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
phantompy Phantompy is a headless WebKit engine with powerful pythonic api build on top of Qt5 Webkit Python
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
Horseman Promise based Node.js module for PhantomJS. Features chainable API, understandable control-flow, support for multiple tabs, and built-in jQuery. JavaScript

Chromium drivers

These libraries control Chromium

Name

About Supported Languages License
Awesomium Chromium-based headless browser engine C++, .NET
Headless Chromium Chromium feature activated with the

--headlesss
flag, currently availible in the nightly build of Chromium, not yet released
C++
Puppeteer Headless Chrome Node API from the Chrome DevTools team JavaScript
PuppeteerSharp PuppeteerSharp is a .NET port of the official Headless Chrome Node.JS Puppeteer API .NET
chrome-remote-interface Chrome Debugging Protocol interface for Node.js JavaScript
Chromy Features chainable API, mobile emulation, fundamental API such as javascript evaluation. JavaScript
chromedp A faster, simpler way to drive browsers (Chrome, Edge, Safari, Android, etc) without external dependencies (ie, Selenium, PhantomJS, etc) using the Chrome Debugging Protocol. Go
Chromeless Chrome automation made simple. Runs locally or headless on AWS Lambda. JavaScript
Chrome PHP PHP API to drive Chromium or Google Chrome via the Chrome Devtools Protocole. PHP
Wendigo Test-oriented browser automation library using Puppeteer. JavaScript
cdp4j A web-automation library for Java. It can be used for automating the use of web pages and for testing web pages. It use Google Chrome DevTools Protocol to automate Chrome/Chromium based browsers. Java
Pyppeteer Python port of puppeteer JavaScript (headless) chrome/chromium browser automation library Python

Webkit drivers

These drivers control an in-process instance of Webkit

Name

About Supported Languages License
Browserjet Runs a custom build of webkit, controlled by node.js interface. JavaScript
ghost.py ghost.py is a webkit web client written in python. Python
headless_browser Headless browser based on WebKit written in C++. C++
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
Python-Webkit Python-Webkit is a python extension to Webkit to add full, complete access to Webkit's DOM Python
Spynner Programmatic web browsing module with AJAX support for Python Python
Webloop Scriptable, headless WebKit with a Go API. Go
wkhtmltopdf wkhtmltox wkhtmltoimage Command line tool rendering HTML into PDF and other image formats. shell, C
WKZombie Functional headless browser (with JSON support) for iOS using WebKit and hpple/libxml2. Swift

Other drivers

These libraries control lesser known browsers or OS-provided web libraries

Name

About Supported Languages License
Cypress Cypress supports end-to-end, integration and unit tests and makes debugging tests simple. Default engine is headless Electron. JavaScript
Nightmare Nightmare is a high-level browser automation library built as an easier alternative to PhantomJS. It runs on the Electron engine. JavaScript
grope A RubyCocoa interface to the macOS WebKit Framework RubyCocoa
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
SpecterJS A scriptable headless Internet Explorer port of PhantomJS. JavaScript
trifleJS A headless Internet Explorer browser using the .NET WebBrowser Class with a Javascript API running on the V8 engine. JavaScript

Fake Browser Engine

These libraries are typically naive or HTML-only browsers

|Name | About | Supported Languages | License |:------------ |:---------------| :----- | :----------- |AngleSharp | .Net Http Parsing Library | .NET | MIT | |Guillotine | A .NET headless browser, written in C# | .NET | LGPL-3.0 | |benv | Stub a browser environment in node.js and headlessly test your client-side code.|JavaScript| MIT | |browser.rb | Headless Ruby browser on top of Nokogiri and TheRubyRacer|Ruby| Not specified | |BrowserKit | BrowserKit simulates the behavior of a web browser.|PHP| MIT | |DamonJS | Bot navigating urls and doing tasks.|JavaScript| Apache | |Headless | Headless browser support for fast web acceptance testing in .Net|.NET| MIT | |HeadlessBrowser | A very miniature headless browser, for testing the DOM on Node.js|JavaScript| Not specified | |HtmlUnit | HtmlUnit is a "GUI-Less browser for Java programs".|Java| Apache | |Jaunt | Java Web Scraping & Automation API|Java| Apache (monthly edition)| |Jauntium | Free Java library that allows you to easily automate Chrome, Firefox, Safari, Edge, IE, and other modern web browers.|Java| Apache| |JSDom | A JavaScript implementation of the WHATWG DOM and HTML standards, for use with Node.js. |JavaScript| MIT | |MechanicalSoup | A Python library for automating interaction with websites.|Python| MIT | |mechanize | Stateful programmatic web browsing.|Python| BSD 3-Clause, ZPL 2.1 | |node-as-browser | Create a browser-like environment within Node.js |JavaScript| MIT | |RoboBrowser | A simple, Pythonic library for browsing the web without a standalone web browser.|Python| BSD 3-Clause | |SimpleBrowser | A flexible and intuitive web browser engine designed for automation tasks. Built on the .Net 4 framework.|.NET| BSD 3-Clause | |stanislaw | Naive, mechanize-like HTML parser/form driver.|Python| Not specified | |twill | Twill is a simple language that interacts with basic HTML pages (no JavaScript support).|Python| MIT | |WeasyPrint | WeasyPrint is a visual rendering engine for HTML and CSS that can export to PDF. It aims to support web standards for printing.|Python| BSD 3-Clause | |WWW::Mechanize | Headless browser for Perl with many plugins and extensions, notably Test::WWW:Mechanize for testing | Perl | Perl 5 | |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| MIT | |Xidel (Internet Tools) | An XQuery-based cli web scraper for static X/HTML pages and JSON-APIs. |FreePascal, XQuery| GPL-2| |Zombie.js | Zombie.js is a lightweight framework for testing client-side JavaScript code in a simulated environment. No browser required. | JavaScript | MIT |

Runs in a browser

Name

About Supported Languages License
DalekJS [unmaintained and recommend TestCafé] Automated cross browser testing with JavaScript. JavaScript
TestCafé Automated browser testing for the modern web development stack. JavaScript
Sahi Sahi is a cross-browser automation/testing tool with the facility to record and playback scripts. JavaScript, Java, Ruby, PHP
WatiN Web Application Testing In .Net .NET

Misc tools

Name

About Supported Languages License
browser-launcher Detect and launch browser versions, headlessly or otherwise JavaScript

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.