# ultrafunkamsterdam/nodriver

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/ultrafunkamsterdam-nodriver).**

3,578 stars · 344 forks · Python · agpl-3.0

## Links

- GitHub: https://github.com/ultrafunkamsterdam/nodriver
- awesome-repositories: https://awesome-repositories.com/repository/ultrafunkamsterdam-nodriver.md

## Description

nodriver is an asynchronous Chromium browser automation framework that provides headless control and web scraping capabilities. It functions as a Chrome DevTools Protocol client, allowing for granular engine control by attaching directly to the browser's debug port without the need for external driver binaries.

The framework is specifically designed as an anti-bot detection bypass tool. It modifies browser fingerprints and protocol headers to evade automated security systems, handle security warnings, and bypass common obstacles like insecure connection alerts.

The system covers a broad range of automation capabilities, including user input simulation, element discovery via CSS selectors or image matching, and custom JavaScript execution. It also provides session management for cookie persistence, network event monitoring, and tools for capturing page content through screenshots and video.

## Tags

### Security & Cryptography

- [Anti-Bot Evasion](https://awesome-repositories.com/f/security-cryptography/bot-detection/anti-bot-evasion.md) — Evades bot detection systems by mimicking browser fingerprints and headers to bypass security services.
- [Session-Cookie Persistences](https://awesome-repositories.com/f/security-cryptography/session-cookie-handlers/session-cookie-persistences.md) — Maintains authenticated states by serializing and reloading cookies and browser profile data from local storage.
- [SSL Warning Bypasses](https://awesome-repositories.com/f/security-cryptography/ssl-warning-bypasses.md) — Automatically bypasses invalid SSL certificate warnings to maintain automation on insecure connections. ([source](https://ultrafunkamsterdam.github.io/nodriver/nodriver/classes/tab.html))

### Web Development

- [Browser Automation](https://awesome-repositories.com/f/web-development/browser-automation.md) — An asynchronous framework for controlling Chromium-based browsers to perform web scraping and automation. ([source](https://cdn.jsdelivr.net/gh/ultrafunkamsterdam/nodriver@main/README.md))
- [JavaScript Execution Bridges](https://awesome-repositories.com/f/web-development/browser-integration-utilities/browser-infrastructure/javascript-execution-bridges.md) — Executes arbitrary JavaScript code within the browser context and returns the results to the automation script. ([source](https://ultrafunkamsterdam.github.io/nodriver))
- [Browser Session Persistence](https://awesome-repositories.com/f/web-development/browser-session-persistence.md) — Implements mechanisms for maintaining and reusing authenticated browser sessions to avoid repeated login procedures. ([source](https://cdn.jsdelivr.net/gh/ultrafunkamsterdam/nodriver@main/README.md))
- [Headless Browser Controllers](https://awesome-repositories.com/f/web-development/headless-browser-controllers.md) — Controls headless browser instances to execute JavaScript and simulate human interactions.
- [Chrome DevTools Protocols](https://awesome-repositories.com/f/web-development/web-automation-scraping/browser-control-protocols/chrome-devtools-protocols.md) — Provides deep integration with Chrome DevTools Protocols for bidirectional communication and browser control. ([source](https://ultrafunkamsterdam.github.io/nodriver))
- [DevTools Protocol Clients](https://awesome-repositories.com/f/web-development/web-automation-scraping/browser-control-protocols/chrome-devtools-protocols/devtools-protocol-clients.md) — Functions as a direct client for the Chrome DevTools Protocol to control the browser without external binaries.
- [Browser Session Managers](https://awesome-repositories.com/f/web-development/web-automation-scraping/web-scraping-automation/browser-automation/browser-session-managers.md) — Manages browser profiles and cookies to persist authenticated states across automation sessions.
- [Web Scraping](https://awesome-repositories.com/f/web-development/web-scraping.md) — Collects structured data from websites by simulating user interactions and executing JavaScript.
- [Browser Session Management](https://awesome-repositories.com/f/web-development/browser-integration-utilities/browser-session-management.md) — Provides programmatic control over browser tabs, including opening, closing, and navigating page history. ([source](https://ultrafunkamsterdam.github.io/nodriver/nodriver/classes/tab.html))
- [Web Automation Frameworks](https://awesome-repositories.com/f/web-development/web-automation-frameworks.md) — Provides a framework for building scripts that automate complex web-based workflows and interactions.
- [Browser Dialog and Event Handlers](https://awesome-repositories.com/f/web-development/web-automation-scraping/browser-dialog-event-handlers.md) — Registers callback functions to intercept and respond to specific browser events and UI states. ([source](https://cdn.jsdelivr.net/gh/ultrafunkamsterdam/nodriver@main/README.md))

### Development Tools & Productivity

- [Browser Automation Frameworks](https://awesome-repositories.com/f/development-tools-productivity/browser-automation-frameworks.md) — Functions as an asynchronous framework for controlling Chromium browsers without requiring external driver binaries.
- [Driverless Browser Integrations](https://awesome-repositories.com/f/development-tools-productivity/driverless-browser-integrations.md) — Controls the browser engine by attaching directly to its debug port instead of using a middleman binary like ChromeDriver.
- [Script Execution Contexts](https://awesome-repositories.com/f/development-tools-productivity/process-execution-utilities/script-execution-contexts.md) — Injects and evaluates custom JavaScript directly within the browser's execution context to manipulate the DOM.
- [Browser Protocol Controllers](https://awesome-repositories.com/f/development-tools-productivity/custom-command-execution/hardware-command-execution/browser-protocol-controllers.md) — Allows the execution of raw, low-level CDP commands for granular control beyond standard automation APIs. ([source](https://ultrafunkamsterdam.github.io/nodriver/nodriver/classes/tab.html))
- [Human-Mimetic Input Simulations](https://awesome-repositories.com/f/development-tools-productivity/input-simulators/human-mimetic-input-simulations.md) — Simulates human-like interactions, including mouse movement and keyboard input, to avoid bot detection. ([source](https://ultrafunkamsterdam.github.io/nodriver/))

### Testing & Quality Assurance

- [UI Element Interactions](https://awesome-repositories.com/f/testing-quality-assurance/ui-element-interactions.md) — Automates direct user actions such as clicking, typing, dragging, and scrolling on specific page elements. ([source](https://ultrafunkamsterdam.github.io/nodriver))
- [Page State Captures](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-utilities-assertions/browser-ui-interaction/browser-environment-emulation/browser-page-management/page-state-analysis/page-state-captures.md) — Saves browser page states as screenshots or video recordings for documentation and behavior verification. ([source](https://ultrafunkamsterdam.github.io/nodriver))
- [Iframe Navigators](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-utilities-assertions/browser-ui-interaction/ui-element-selectors/shadow-dom-selectors/iframe-navigators.md) — Provides the ability to locate and interact with elements nested inside iframes and shadow DOMs. ([source](https://ultrafunkamsterdam.github.io/nodriver))
- [Network Traffic Monitors](https://awesome-repositories.com/f/testing-quality-assurance/general-testing-utilities/test-utilities-assertions/network-api-mocking/network-traffic-monitors.md) — Registers callbacks to monitor and react to real-time network traffic and requests within the browser. ([source](https://ultrafunkamsterdam.github.io/nodriver/nodriver/classes/tab.html))

### User Interface & Experience

- [DOM Element Selectors](https://awesome-repositories.com/f/user-interface-experience/dom-element-selectors.md) — Finds elements using CSS selectors and text matches to target specific page components for automation. ([source](https://ultrafunkamsterdam.github.io/nodriver/nodriver/classes/tab.html))
- [Visual Element Locators](https://awesome-repositories.com/f/user-interface-experience/dom-element-selectors/visual-element-locators.md) — Locates page elements by analyzing pixel patterns through screenshots when CSS selectors are unavailable.
- [Image-Based](https://awesome-repositories.com/f/user-interface-experience/element-locators/image-based.md) — Finds the coordinates of elements using image matching to locate items hidden from the document object model. ([source](https://ultrafunkamsterdam.github.io/nodriver/nodriver/classes/tab.html))

### DevOps & Infrastructure

- [Element Presence Retries](https://awesome-repositories.com/f/devops-infrastructure/job-scheduling/automatic-retry-mechanisms/element-presence-retries.md) — Automatically polls the browser state until requested elements appear to handle dynamic content loading.

### Programming Languages & Runtimes

- [Asynchronous Event Loops](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/concurrency-models/asynchronous-event-loops.md) — Implements an asynchronous event-driven execution model to handle concurrent browser events without blocking.
