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


Here is an amazing list on github of each and every headless browser:

Browser engines

These browser engines fully render web pages or run JavaScript in a virtual DOM
NameAboutSupported LanguagesLicense
Chromium Embedded FrameworkCEF is a open source project based on the Google Chromium project.JavaScriptBSD
ErikHeadless browser on top of Kanna and WebKit.SwiftMIT
jBrowserDriverA Selenium-compatible headless browser which is written in pure Java. WebKit-based. Works with any of the Selenium Server bindings.JavaNot specified
PhantomJSPhantomJS 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 3-Clause
SplashSplash 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.AnyBSD 3-Clause

Multi drivers

These libraries can control multiple browser engines (typically using Selenium)
NameAboutSupported LanguagesLicense
CasperJSCasperJS is an open source navigation scripting & testing utility written in Javascript for the PhantomJS WebKit headless browser and SlimerJS (Gecko).JavaScriptMIT
GebGeb is a Groovy interface to WebDriver.GroovyApache
SeleniumSelenium is a suite of tools to automate web browsers across many platforms.JavaScript, Python, Ruby, Java, C#, Haskell, Objective-C, Perl, PHP, RApache
SplinterSplinter 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-
SSTSST (selenium-simple-test) is a web test framework that uses Python to generate functional browser-based tests.Python-
WatirThe most elegant way to use Selenium WebDriver with ruby.RubyMIT

PhantomJS drivers

These libraries control PhantomJS
NameAboutSupported LanguagesLicense
GhostbusterAutomated 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!JavaScriptNot specified
jedi-crawlerLightsabing Node/PhantomJS crawler; scrape dynamic content : without the hassleJavaScriptNot specified
LotteLotte is a headless, automated testing framework built on top of PhantomJS and inspired by Ghostbuster.JavaScriptMIT
NightmareNightmare is a high-level browser automation library built as an easier alternative to PhantomJS.JavaScriptMIT
phantompyPhantompy is a headless WebKit engine with powerful pythonic api build on top of Qt5 WebkitPythonLGPL-2.1
X-RAYSupports strings, arrays, arrays of objects, nested object structures, selector API, pagination, crawler, concurrency, throttles, delays, timeouts, and pluggable drivers (PhantomJS, HTTP)JavaScriptMIT
HorsemanPromise based Node.js module for PhantomJS. Features chainable API, understandable control-flow, support for multiple tabs, and built-in jQuery.JavaScriptMIT

Chromium drivers

These libraries control Chromium
NameAboutSupported LanguagesLicense
AwesomiumChromium-based headless browser engineC++, .NETFree/Commercial
Headless ChromiumChromium feature activated with the --headlesss flag, currently availible in the nightly build of Chromium, not yet releasedC++Opensource

Webkit drivers

These drivers control an in-process instance of Webkit
NameAboutSupported LanguagesLicense
BrowserjetRuns a custom build of webkit, controlled by node.js interface.JavaScriptNot specified
ghost.pyghost.py is a webkit web client written in python.PythonMIT
headless_browserHeadless browser based on WebKit written in C++.C++Not Specified
Jabba-WebkitJabba's headless webkit browser for scraping AJAX-powered webpages.PythonNot specified
Jasmine-Headless-Webkitjasmine-headless-webkit uses the QtWebKit widget to run your specs without needing to render a pixel.Python, JavaScript, RubyFree
Python-WebkitPython-Webkit is a python extension to Webkit to add full, complete access to Webkit's DOMPythonGNU
SpynnerProgrammatic web browsing module with AJAX support for PythonPythonNot specified
WebloopScriptable, headless WebKit with a Go API.GoBSD 3-Clause
wkhtmltopdfwkhtmltox wkhtmltoimageCommand line tool rendering HTML into PDF and other image formats.shell, CLGPLv3
WKZombieFunctional headless browser (with JSON support) for iOS using WebKit and hpple/libxml2.SwiftMIT

Other drivers

These libraries control lesser known browsers or OS-provided web libraries
NameAboutSupported LanguagesLicense
gropeA RubyCocoa interface to the macOS WebKit FrameworkRubyCocoaMIT
SlimerJSSlimerJS 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).JavaScriptMozilla 2.0
SpecterJSA scriptable headless Internet Explorer port of PhantomJS.JavaScriptMIT
trifleJSA headless Internet Explorer browser using the .NET WebBrowser Class with a Javascript API running on the V8 engine.JavaScriptMIT

Fake Browser Engine

These libraries are typically naive or HTML-only browsers
NameAboutSupported LanguagesLicense
AngleSharp.Net Http Parsing Library.NETMIT
benvStub a browser environment in node.js and headlessly test your client-side code.JavaScriptMIT
browser.rbHeadless Ruby browser on top of Nokogiri and TheRubyRacerRubyNot specified
BrowserKitBrowserKit simulates the behavior of a web browser.PHPMIT
DamonJSBot navigating urls and doing tasks.JavaScriptApache
HeadlessHeadless browser support for fast web acceptance testing in .Net.NETMIT
HeadlessBrowserA very miniature headless browser, for testing the DOM on Node.jsJavaScriptNot specified
HtmlUnitHtmlUnit is a "GUI-Less browser for Java programs".JavaApache
JauntJava Web Scraping & Automation APIJavaNot specified
JSDomA JavaScript implementation of the WHATWG DOM and HTML standards, for use with Node.js.JavaScriptMIT
MechanicalSoupA Python library for automating interaction with websites.PythonMIT
mechanizeStateful programmatic web browsing.PythonBSD 3-Clause, ZPL 2.1
node-as-browserCreate a browser-like environment within Node.jsJavaScriptMIT
RoboBrowserA simple, Pythonic library for browsing the web without a standalone web browser.PythonBSD 3-Clause
SimpleBrowserA flexible and intuitive web browser engine designed for automation tasks. Built on the .Net 4 framework..NETBSD 3-Clause
stanislawNaive, mechanize-like HTML parser/form driver.PythonNot specified
twillTwill is a simple language that interacts with basic HTML pages (no JavaScript support).PythonMIT
WeasyPrintWeasyPrint is a visual rendering engine for HTML and CSS that can export to PDF. It aims to support web standards for printing.PythonBSD 3-Clause
WWW::MechanizeHeadless browser for Perl with many plugins and extensions, notably Test::WWW:Mechanize for testingPerlPerl 5
X-RAYSupports strings, arrays, arrays of objects, nested object structures, selector API, pagination, crawler, concurrency, throttles, delays, timeouts, and pluggable drivers (PhantomJS, HTTP)JavaScriptMIT
Xidel (Internet Tools)An XQuery-based cli web scraper for static X/HTML pages and JSON-APIs.FreePascal, XQueryGPL-2
Zombie.jsZombie.js is a lightweight framework for testing client-side JavaScript code in a simulated environment. No browser required.JavaScriptMIT

Runs in a browser

NameAboutSupported LanguagesLicense
DalekJSAutomated cross browser testing with JavaScript.JavaScriptMIT
SahiSahi is a cross-browser automation/testing tool with the facility to record and playback scripts.JavaScript, Java, Ruby, PHPApache / Commercial
WatiNWeb Application Testing In .Net.NETApache 2.0

Misc tools

NameAboutSupported LanguagesLicense
browser-launcherDetect and launch browser versions, headlessly or otherwiseJavaScriptMIT
GitHub - dhamaniasad/HeadlessBrowsers: A list of (almost) all headless web browsers in existence

Comments

Post a Comment

Popular posts from this blog

Software Testing @ Microsoft

Trim / Remove spaces in Xpath?