{"id":13394648,"url":"https://github.com/dhamaniasad/HeadlessBrowsers","last_synced_at":"2025-03-13T20:31:37.643Z","repository":{"id":20688206,"uuid":"23971425","full_name":"dhamaniasad/HeadlessBrowsers","owner":"dhamaniasad","description":"A list of (almost) all headless web browsers in existence","archived":false,"fork":false,"pushed_at":"2024-06-19T15:40:50.000Z","size":752,"stargazers_count":6328,"open_issues_count":7,"forks_count":429,"subscribers_count":188,"default_branch":"master","last_synced_at":"2025-03-06T01:44:21.863Z","etag":null,"topics":["automation","browser","headless-browsers","testing"],"latest_commit_sha":null,"homepage":"http://dhamaniasad.github.io/HeadlessBrowsers","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dhamaniasad.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-09-12T18:13:55.000Z","updated_at":"2025-03-05T11:46:29.000Z","dependencies_parsed_at":"2024-05-18T07:31:57.788Z","dependency_job_id":"95fe0b6e-be02-4292-ad2a-502ae63e74e9","html_url":"https://github.com/dhamaniasad/HeadlessBrowsers","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhamaniasad%2FHeadlessBrowsers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhamaniasad%2FHeadlessBrowsers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhamaniasad%2FHeadlessBrowsers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dhamaniasad%2FHeadlessBrowsers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dhamaniasad","download_url":"https://codeload.github.com/dhamaniasad/HeadlessBrowsers/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243478169,"owners_count":20297207,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","browser","headless-browsers","testing"],"created_at":"2024-07-30T17:01:26.936Z","updated_at":"2025-03-13T20:31:37.263Z","avatar_url":"https://github.com/dhamaniasad.png","language":null,"funding_links":[],"categories":["Others","Technical","miscellaneous","Resources","Topics","automation","其他","testing","browser"],"sub_categories":["ramanihiteshc@gmail.com","Related tools"],"readme":"Headless Browsers\n================\n\n### A list of (almost) all headless web browsers in existence\n\n*A web browser without a graphical user interface, controlled programmatically. Used for automation, testing, and other purposes.*\n\n\u003cdiv align=\"center\"\u003e\n  Sponsored by \u003ca href=\"https://www.browserbase.com\"\u003e🅱️ Browserbase\u003c/a\u003e: Hosted Headless Web Browsers with built-in session recording, auto-scaling, proxies and captcha solving.\u003cbr/\u003e Compatible with Puppeteer, Playwright, and Selenium.\n\u003c/div\u003e\n\n## Browser engines\n\n*These browser engines fully render web pages or run JavaScript in a virtual DOM*\n\nName  | About  | Supported Languages | License\n:------------ |:---------------| :----- | :-----------\n|[Chromium Embedded Framework](https://bitbucket.org/chromiumembedded/cef) |CEF is a open source project based on the Google Chromium project.        |   JavaScript | BSD |\n|[Erik](https://github.com/phimage/Erik) | Headless browser on top of Kanna and WebKit.|Swift| MIT |\n|[jBrowserDriver](https://github.com/machinepublishers/jbrowserdriver) | A Selenium-compatible headless browser which is written in pure Java. WebKit-based. Works with any of the Selenium Server bindings.|Java| Apache License v2.0 |\n|[PhantomJS](http://phantomjs.org/) | [[Unmaintained]](https://groups.google.com/forum/#!topic/phantomjs/9aI5d-LDuNE) 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](http://docs.seleniumhq.org/about/platforms.jsp#programming-languages))  | BSD 3-Clause |\n|[Splash](https://github.com/scrapinghub/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 3-Clause |\n|[Surf](https://github.com/headzoo/surf)|Surf is an open source project that implements a virtual web browser that can be controlled programatically | Go | MIT\n\n## Multi drivers\n\n*These libraries can control multiple browser engines (typically using Selenium)*\n\nName  | About  | Supported Languages | License\n:------------ |:---------------| :----- | :-----------\n|[CasperJS](http://casperjs.org/) | [[Unmaintained]](https://github.com/casperjs/casperjs) CasperJS is an open source navigation scripting \u0026 testing utility written in Javascript for the PhantomJS WebKit headless browser and SlimerJS (Gecko).        |   JavaScript | MIT |\n|[Geb](http://www.gebish.org/) | Geb is a Groovy interface to WebDriver.|Groovy| Apache |\n|[Playwright](https://github.com/microsoft/playwright) | Playwright is a Node library to automate the Chromium, WebKit and Firefox browsers with a single API |TypeScript| Apache |\n|[playwright-dotnet](https://github.com/microsoft/playwright-dotnet) | Playwright for .NET is a library to automate Chromium, Firefox and WebKit browsers with a single API. |.NET| MIT |\n|[playwright-python](https://github.com/microsoft/playwright-python) | Playwright for Python is a library to automate Chromium, Firefox and WebKit browsers with a single API. |Python| Apache |\n|[playwright-java](https://github.com/microsoft/playwright-java) | Playwright for Java is a library to automate Chromium, Firefox and WebKit browsers with a single API. |Java| Apache |\n|[playwright-go](https://github.com/mxschmitt/playwright-go) | Playwright for Go is a library to automate Chromium, Firefox and WebKit browsers with a single API. |Go| MIT |\n|[Selenium](http://seleniumhq.org) | Selenium is a suite of tools to automate web browsers across many platforms.|JavaScript, Python, Ruby, Java, C#, Haskell, Objective-C, Perl, PHP, R, C++| Apache |\n|[Splinter](https://splinter.readthedocs.io/en/latest/) | 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| - |\n|[SST](https://pypi.python.org/pypi/sst/0.2.4) | SST (selenium-simple-test) is a web test framework that uses Python to generate functional browser-based tests.|Python| - |\n|[Watir](https://github.com/watir/watir) | The most elegant way to use Selenium WebDriver with Ruby.|Ruby| MIT |\n\n## PhantomJS drivers\n\n*These libraries control PhantomJS*\n\nName  | About  | Supported Languages | License\n:------------ |:---------------| :----- | :-----------\n|[Ghostbuster](https://github.com/joshbuddy/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| Not specified |\n|[jedi-crawler](https://github.com/spacenick/jedi-crawler) | Lightsabing Node/PhantomJS crawler; scrape dynamic content : without the hassle|JavaScript| Not specified |\n|[Lotte](https://github.com/StanAngeloff/lotte)| Lotte is a headless, automated testing framework built on top of PhantomJS and inspired by Ghostbuster. | JavaScript | MIT |\n|[phantompy](https://github.com/niwinz/phantompy) | Phantompy is a headless WebKit engine with powerful pythonic api build on top of Qt5 Webkit|Python| LGPL-2.1 |\n|[X-RAY](https://github.com/lapwinglabs/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 |\n|[Horseman](http://www.horsemanjs.org/) | Promise based Node.js module for PhantomJS. Features chainable API, understandable control-flow, support for multiple tabs, and built-in jQuery.|JavaScript| MIT |\n\n## Chromium drivers\n\n*These libraries control Chromium*\n\nName  | About  | Supported Languages | License\n:------------ |:---------------| :----- | :-----------\n|[Awesomium](http://www.awesomium.com/) | Chromium-based headless browser engine|C++, .NET| Free/Commercial |\n|[Headless Chromium](https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md) | Chromium feature activated with the `--headlesss` flag, currently availible in the nightly build of Chromium, not yet released|C++| Opensource |\n|[Puppeteer](https://github.com/GoogleChrome/puppeteer) | Headless Chrome Node API from the Chrome DevTools team|JavaScript| Apache |\n|[PuppeteerSharp](https://github.com/kblok/puppeteer-sharp) | PuppeteerSharp is a .NET port of the official Headless Chrome Node.JS Puppeteer API|.NET| MIT |\n|[chrome-remote-interface](https://github.com/cyrus-and/chrome-remote-interface) | Chrome Debugging Protocol interface for Node.js|JavaScript| MIT |\n|[Chromy](https://github.com/OnetapInc/chromy/) | Features chainable API, mobile emulation, fundamental API such as javascript evaluation. |JavaScript| MIT |\n|[chromedp](https://github.com/knq/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| MIT |\n|[Chromeless](https://github.com/graphcool/chromeless) | Chrome automation made simple. Runs locally or headless on AWS Lambda. | JavaScript | MIT |\n|[Chrome PHP](https://github.com/chrome-php/headless-chromium-php) | PHP API to drive Chromium or Google Chrome via the Chrome Devtools Protocole. | PHP | Fair |\n|[Wendigo](https://github.com/angrykoala/wendigo) | Test-oriented browser automation library using Puppeteer. | JavaScript | GPL-3.0 | \n|[cdp4j](https://github.com/safrizal/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 | cdp4j Commercial License |\n|[Pyppeteer](https://github.com/pyppeteer/pyppeteer) | Python port of puppeteer JavaScript (headless) chrome/chromium browser automation library | Python | MIT |\n|[Headless Chrome](https://github.com/atroche/rust-headless-chrome) | A high-level API to control headless Chrome or Chromium over the DevTools Protocol. | Rust | None\n\n## Webkit drivers\n\n*These drivers control an in-process instance of Webkit*\n\nName  | About  | Supported Languages | License\n:------------ |:---------------| :----- | :-----------\n|[Browserjet](https://github.com/briankircho/browserjet) | Runs a custom build of webkit, controlled by node.js interface.|JavaScript| Not specified |\n|[ghost.py](https://github.com/jeanphix/Ghost.py) | ghost.py is a webkit web client written in python.|Python| MIT |\n|[headless_browser](https://github.com/alexandernst/headless_browser) | Headless browser based on WebKit written in C++.|C++| Not Specified |\n|[Jabba-Webkit](https://github.com/jabbalaci/Jabba-Webkit) | Jabba's headless webkit browser for scraping AJAX-powered webpages.|Python| Not specified |\n|[Jasmine-Headless-Webkit](http://johnbintz.github.io/jasmine-headless-webkit/) | jasmine-headless-webkit uses the QtWebKit widget to run your specs without needing to render a pixel.|Python, JavaScript, Ruby| Free |\n|[Python-Webkit](http://www.gnu.org/software/pythonwebkit/) | Python-Webkit is a python extension to Webkit to add full, complete access to Webkit's DOM|Python| GNU |\n|[Spynner](https://github.com/makinacorpus/spynner) | Programmatic web browsing module with AJAX support for Python|Python| Not specified |\n|[Webloop](https://github.com/sourcegraph/webloop) | Scriptable, headless WebKit with a Go API. | Go | BSD 3-Clause |\n|[wkhtmltopdf](http://wkhtmltopdf.org/) wkhtmltox wkhtmltoimage | Command line tool rendering HTML into PDF and other image formats. | shell, C | LGPLv3 |\n|[WKZombie](https://github.com/mkoehnke/WKZombie) | Functional headless browser (with JSON support) for iOS using WebKit and hpple/libxml2.|Swift| MIT |\n\n## Other drivers\n\n*These libraries control lesser known browsers or OS-provided web libraries*\n\nName  | About  | Supported Languages | License\n:------------ |:---------------| :----- | :-----------\n|[Cypress](https://www.cypress.io/) | Cypress supports end-to-end, integration and unit tests and makes debugging tests simple. Default engine is headless Electron. |JavaScript| MIT |\n|[Nightmare](http://www.nightmarejs.org/) | Nightmare is a high-level browser automation library built as an easier alternative to PhantomJS. It runs on the Electron engine. |JavaScript| MIT |\n|[grope](https://github.com/youpy/grope) | A RubyCocoa interface to the macOS WebKit Framework |RubyCocoa| MIT |\n|[SlimerJS](http://slimerjs.org/) | 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| Mozilla 2.0 |\n|[SpecterJS](https://github.com/andyjansson/specterjs) | A scriptable headless Internet Explorer port of PhantomJS. | JavaScript | MIT |\n|[trifleJS](http://triflejs.org/) | A headless Internet Explorer browser using the .NET WebBrowser Class with a Javascript API running on the V8 engine.|JavaScript| MIT |\n\n\n## Fake Browser Engine\n\n*These libraries are typically naive or HTML-only browsers*\n\n|Name  | About  | Supported Languages | License\n|:------------ |:---------------| :----- | :-----------\n|[AngleSharp](https://github.com/AngleSharp/AngleSharp) | .Net Http Parsing Library | .NET | MIT |\n|[Guillotine](https://github.com/pszyller/Guillotine) | A .NET headless browser, written in C# | .NET | LGPL-3.0 |\n|[benv](https://github.com/artsy/benv) | Stub a browser environment in node.js and headlessly test your client-side code.|JavaScript| MIT |\n|[browser.rb](https://github.com/tmp8/browser-rb) | Headless Ruby browser on top of Nokogiri and TheRubyRacer|Ruby| Not specified |\n|[BrowserKit](https://github.com/symfony/browser-kit) | BrowserKit simulates the behavior of a web browser.|PHP| MIT |\n|[DamonJS](https://github.com/damonjs/damon) | Bot navigating urls and doing tasks.|JavaScript| Apache |\n|[Headless](https://github.com/roryprimrose/Headless) | Headless browser support for fast web acceptance testing in .Net|.NET| MIT |\n|[HeadlessBrowser](https://github.com/clubajax/HeadlessBrowser) | A very miniature headless browser, for testing the DOM on Node.js|JavaScript| Not specified |\n|[HtmlUnit](http://htmlunit.sourceforge.net/) | HtmlUnit is a \"GUI-Less browser for Java programs\".|Java| Apache |\n|[Jaunt](http://jaunt-api.com/) | Java Web Scraping \u0026 Automation API|Java| Apache (monthly edition)|\n|[Jauntium](https://jauntium.com/) | Free Java library that allows you to easily automate Chrome, Firefox, Safari, Edge, IE, and other modern web browers.|Java| Apache|\n|[JSDom](https://github.com/tmpvar/jsdom) | A JavaScript implementation of the WHATWG DOM and HTML standards, for use with Node.js. |JavaScript| MIT |\n|[MechanicalSoup](https://github.com/hickford/MechanicalSoup) | A Python library for automating interaction with websites.|Python| MIT |\n|[mechanize](http://wwwsearch.sourceforge.net/mechanize/) | Stateful programmatic web browsing.|Python| BSD 3-Clause, ZPL 2.1 |\n|[node-as-browser](https://github.com/seebigs/node-as-browser) | Create a browser-like environment within Node.js |JavaScript| MIT |\n|[RoboBrowser](https://github.com/jmcarp/robobrowser) | A simple, Pythonic library for browsing the web without a standalone web browser.|Python| BSD 3-Clause |\n|[SimpleBrowser](https://github.com/SimpleBrowserDotNet/SimpleBrowser) | A flexible and intuitive web browser engine designed for automation tasks. Built on the .Net 4 framework.|.NET| BSD 3-Clause |\n|[twill](http://twill.idyll.org/) | Twill is a simple language that interacts with basic HTML pages (no JavaScript support).|Python| MIT |\n|[WeasyPrint](http://weasyprint.org/) | 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 |\n|[WWW::Mechanize](https://metacpan.org/search?size=20\u0026q=WWW%3A%3AMechanize\u0026search_type=modules) |  Headless browser for Perl with many plugins and extensions, notably Test::WWW:Mechanize for testing | Perl | Perl 5 |\n|[X-RAY](https://github.com/lapwinglabs/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 |\n|[Xidel (Internet Tools)](http://www.videlibri.de/xidel.html) | An XQuery-based cli web scraper for static X/HTML pages and JSON-APIs. |FreePascal, XQuery| GPL-2|\n|[Zombie.js](http://zombie.js.org/) | Zombie.js is a lightweight framework for testing client-side JavaScript code in a simulated environment. No browser required.    | JavaScript   | MIT |\n\n## Runs in a browser\n\nName  | About  | Supported Languages | License\n:------------ |:---------------| :----- | :-----------\n|[DalekJS](http://dalekjs.com/) | [unmaintained and recommend TestCafé] Automated cross browser testing with JavaScript.|JavaScript| MIT |\n|[TestCafé](https://devexpress.github.io/testcafe/) | Automated browser testing for the modern web development stack.|JavaScript| MIT |\n|[Sahi](http://sahipro.com/sahi-open-source/) | Sahi is a cross-browser automation/testing tool with the facility to record and playback scripts.|JavaScript, Java, Ruby, PHP| Apache / Commercial |\n|[WatiN](http://watin.org/) | Web Application Testing In .Net|.NET| Apache 2.0 |\n\n## Misc tools\n\nName  | About  | Supported Languages | License\n:------------ |:---------------| :----- | :-----------\n|[browser-launcher](https://github.com/substack/browser-launcher) | Detect and launch browser versions, headlessly or otherwise|JavaScript| MIT |\n|[Headless Recorder](https://chrome.google.com/webstore/detail/headless-recorder/djeegiggegleadkkbgopoonhjimgehda) | Chrome extension that records your browser interactions and generates a Playwright or Puppeteer script |JavaScript| MIT |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhamaniasad%2FHeadlessBrowsers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdhamaniasad%2FHeadlessBrowsers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhamaniasad%2FHeadlessBrowsers/lists"}