Skip to content

Latest commit

 

History

History
145 lines (124 loc) · 36.5 KB

headless-browsers.md

File metadata and controls

145 lines (124 loc) · 36.5 KB

Headless Browsers

A list of the most important resources for browser automation with headless browsers.

Table of Contents

Best Browsers

A list of the best browsers for browser automation.

Name Description Nature
Scraping Browser A cloud GUI browser that is designed for web scraping. Equipped with CAPTCHA solving capabilities, unlimited scalability, IP rotation, cookie management, header customization, and more Premium [Bright Data's solution]
Chromium An open-source web browser that forms the base for Google Chrome Free
Google Chrome A popular web browser known for its speed, security, and developer tools Free
Firefox A fast and privacy-focused browser with excellent developer tools Free
Microsoft Edge Built on Chromium, Microsoft Edge offers performance improvements and compatibility with Chromium-based automation tools Free
Safari Apple's default browser for macOS and iOS, often used for automation in Safari-specific testing Free
Opera A Chromium-based browser with unique features like built-in VPN and ad blocking Free

Protocols

Protocols used for controlling web browsers.

Name Description Browsers
WebDriver A remote control interface that enables introspection and control of user agents. It provides a platform- and language-neutral wire protocol as a way for out-of-process programs to remotely instruct the behavior of web browsers Any
Chrome DevTools Protocol A protocol that allows tools to instrument, inspect, debug, and profile Chromium, Chrome, and other Blink-based browsers Chromium, Chrome, and other Blink-based browsers
Marionette A remote protocol that lets out-of-process programs communicate with, instrument, and control Gecko-based browsers Gecko-based browsers

Web Drivers

WebDriver implementations that enable automation for different browsers.

Name Description Controllable Browsers
ChromeDriver A standalone server that implements the W3C WebDriver standard. ChromeDriver is available for Chrome on Android and Chrome on Desktop (Mac, Linux, Windows and ChromeOS) Chromium-based browsers
geckodriver A driver that provides the HTTP API described by the WebDriver protocol to communicate with Gecko browsers, such as Firefox Gecko-based browsers
Microsoft Edge WebDriver A driver that allows you to automate Microsoft Edge by simulating user interaction. Tests that use WebDriver have some advantages over JavaScript unit tests that run in the browser Edge
WebDriver for Safari A driver to write tests in Python, Java, PHP, JavaScript, and any other language whose library is compatible with the W3C WebDriver protocol Safari
OperaChromiumDriver A WebDriver implementation derived from ChromeDriver and adapted by Opera that enables programmatic automation of Chromium-based Opera products for desktop and Android platforms Opera

Browser Automation Libraries

Libraries to control headless browsers via browser automation.

Name Description Programming Language
puppeteer A JavaScript library which provides a high-level API to control Chrome or Firefox over the DevTools Protocol or WebDriver BiDi JavaScript
playwright A framework for Web Testing and Automation. It allows testing Chromium, Firefox and WebKit with a single API JavaScript
selenium A browser automation framework and ecosystem JavaScript
cypress A fast, easy and reliable testing for anything that runs in a browser JavaScript
webdriverio A next-gen browser and mobile automation test framework for Node.js JavaScript
wendigo A proper monster for front-end automated testing JavaScript
selenium A browser automation framework and ecosystem Python
playwright A Python version of the Playwright testing and automation library Python
pyppeteer A headless Chrome/Chromium automation library (unofficial port of Puppeteer) Python
seleniumbase A Python's all-in-one framework for web crawling, scraping, testing, and reporting. Supports pytest. UC Mode provides stealth. Includes many tools Python
crawlee A web scraping and browser automation library for Python to build reliable crawlers. Extract data for AI, LLMs, RAG, or GPTs. Download HTML, PDF, JPG, PNG, and other files from websites. Works with BeautifulSoup, Playwright, and raw HTTP. Both headful and headless mode. With proxy rotation Python
botasaurus An all-in-one framework to build awesome scrapers Python
splinter A Python test framework for web applications Python
Selenium A browser automation framework and ecosystem Java
Playwright The Java version of the Playwright testing and automation library Java
HtmlUnit A GUI-less browser for Java programs that models HTML documents and provides an API that allows you to invoke pages, fill out forms, click links, etc Java
Jauntium A Java library that allows you to easily automate Chrome, Firefox, Safari, Edge, IE, and other modern web browsers Java
Microsoft.Playwright A .NET version of the Playwright testing and automation library .NET
PuppeteerSharp A .NET port of the official Node.js Puppeteer API .NET
Selenium.WebDriver A browser automation framework and ecosystem .NET
Atata A C#/.NET test automation framework for web .NET
Coypu An intuitive, robust browser automation for .NET .NET
Panther A browser testing and web crawling library for PHP and Symfony PHP
php-webdriver A PHP client for Selenium/WebDriver protocol PHP
chrome-php/chrome A library to instrument headless chrome/chromium instances from PHP PHP
Mink PHP web browser emulator abstraction PHP
chromedp A faster, simpler way to drive browsers supporting the Chrome DevTools Protocol Go
rod A Chrome DevTools Protocol driver for web automation and scraping Go
selenium A Selenium/Webdriver client for Go Go
playwright-go A browser automation library to control Chromium, Firefox and WebKit with a single API. A port of Playwright for Go Go
rust-headless-chrome A high-level API to control headless Chrome or Chromium over the DevTools Protocol. It is the Rust equivalent of Puppeteer, a Node library maintained by the Chrome DevTools team Rust
thirtyfour A Selenium WebDriver client for Rust, for automated testing of websites Rust
chromiumoxide A Rust crate that provides a high-level and async API to control Chrome or Chromium over the DevTools Protocol Rust
playwright-rust A Playwright port to Rust Rust
selenium-webdriver The Ruby bindings for Selenium/WebDriver Ruby
Watir A Ruby gem that facilitates the writing of automated tests by mimicking the behavior of a user interacting with a website Ruby
playwright-ruby-client A Playwright client for Ruby Ruby
puppeteer-ruby A Ruby port of Puppeteer Ruby
RSelenium R bindings for Selenium WebDriver R
chromote A Chrome remote interface for R R
hayalbaz An R package provides a puppeteer inspired interface to the Chrome Devtools Protocol using chromote R
selenium-r A low-level browser automation interface R
WWW::Mechanize::Chrome A library to automate the Chrome browser Perl
Playwright Perl bindings for Playwright Perl
Selenium::Edge Perl bindings to the Selenium Webdriver server Perl
Firefox::Marionette A library to automate the Firefox browser with the Marionette protocol Perl
WWW::Selenium Perl Client for the Selenium Remote Control test tool Perl

Fake Headless Browser Libraries

Libraries that use browser-like syntax but are purely HTTP clients and cannot render JavaScript.

Name About Programming Language
python-mechanize A library for stateful programmatic web browsing in Python Python
MechanicalSoup A Python library for automating interaction with websites Python
AngleSharp The ultimate angle brackets parser library parsing HTML5, MathML, SVG and CSS to construct a DOM based on the official W3C specifications .NET
SimpleBrowser A flexible and intuitive web browser engine designed for automation tasks .NET
BrowserKit A library that simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically PHP
Surf An open source project that implements a virtual web browser that can be controlled programmatically Go
mechanize A library that makes automated web interaction easy Ruby
WWW::Mechanize A module for stateful programmatic web browsing, used for automating interaction with websites Perl

Plugins and Other Tools

Headless browser tools and technologies, as well as plugins to extend the functionality of browser automation libraries.

Name Description Programming Language
JSDom A JavaScript implementation of various web standards, for use with Node.js JavaScript
puppeteer-extra-plugin-stealth A plugin for puppeteer-extra and playwright-extra to prevent detection JavaScript
puppeteer-extra-plugin-anonymize-ua A plugin for puppeteer-extra and playwright-extra to anonymize the User-Agent on all pages JavaScript
@extra/proxy-router A plugin for playwright-extra and puppeteer-extra to route proxies dynamically JavaScript
puppeteer-extra-plugin-block-resources A plugin for playwright-extra and puppeteer-extra to block resources (images, media, css, etc.) JavaScript
Splash A lightweight, scriptable browser as a service with an HTTP API Python
requestium An integration layer between Requests and Selenium for automation of web actions Python
playwright_stealth A Python port of the puppeteer-extra-plugin-stealth plugin Python
pyppeteerstealth Pyppeteer stealth plugin to attempt to look like a normal browser Python
jBrowserDriver Programmable, embeddable web browser driver compatible with the Selenium WebDriver spec -- headless, WebKit-based, pure Java Java
WebDriverManager A library that provides automated driver management and other helper features for Selenium WebDriver in Java Java
ExtraStealth A PuppeteerExtraSharp and PlaywrightExtraSharp plugin that applies various evasion techniques to make detection of headless Puppeteer harder .NET
AnonymizeUa A PuppeteerExtraSharp and PlaywrightExtraSharp plugin to anonymize the user-agent on all pages .NET
Recaptcha A PuppeteerExtraSharp and PlaywrightExtraSharp plugin to solve reCAPTCHA automatically .NET
BlockResources A PuppeteerExtraSharp and PlaywrightExtraSharp plugin to block images, documents, etc .NET
Chromium Embedded Framework A simple framework for embedding Chromium-based browsers in other applications C++
go-rod/stealth A plugin for anti-bot-detection with rod Go
webdriver-downloader A CLI interface & library for WebDriver download Rust
parsel A tool for parallel execution of RSelenium R
Firefox::Marionette::Extension::Stealth A Stealth extension for Firefox::Marionette Perl
Erik Headless browser based on WebKit and HTML parser Kanna Swift