# zendriver | CDP Driver | Knowledge Base | Instagit

A blazing fast, async-first, undetectable webscraping/web automation framework based on ultrafunkamsterdam/nodriver. Now with Docker support!

GitHub Stars: 1.1k

Repository: https://github.com/cdpdriver/zendriver

---

## Articles

### [How to Specify a Custom Browser Executable Path in Zendriver](/cdpdriver/zendriver/how-to-specify-custom-browser-executable-path)

Specify a custom browser executable path in Zendriver by passing browser_executable_path to zd.start() or Config(). Easily point to any Chromium binary, overriding auto-discovery.

- Tags: how-to-guide
- Published: 2026-02-27

### [How to Bind Zendriver to a Specific Host and Port: Complete Configuration Guide](/cdpdriver/zendriver/how-to-bind-zendriver-to-specific-host-and-port)

Learn how to bind Zendriver to a specific host and port using the start() function or Config instance. Control your network interface and TCP port for enhanced debugging.

- Tags: how-to-guide
- Published: 2026-02-27

### [How to Monitor Network Traffic and API Responses in Zendriver](/cdpdriver/zendriver/how-to-monitor-network-traffic-and-api-responses)

Monitor network traffic and API responses with Zendriver using CDP events. Capture requests and response data efficiently for effective debugging.

- Tags: how-to-guide
- Published: 2026-02-27

### [How to Execute Custom JavaScript Code on a Page with Zendriver](/cdpdriver/zendriver/how-to-execute-custom-javascript-code-on-a-page)

Execute custom JavaScript on a page using Zendriver. Learn to use Tab.evaluate() for arbitrary expressions or add_script_to_evaluate_on_load() for persistent script injection. Read now.

- Tags: how-to-guide
- Published: 2026-02-27

### [How to Take Screenshots of Web Pages with zendriver: A Complete Guide](/cdpdriver/zendriver/how-to-take-screenshots-of-web-pages)

Learn how to take screenshots of web pages using zendriver. Capture full pages or specific elements with simple, powerful commands for your automation needs.

- Tags: how-to-guide
- Published: 2026-02-27

### [How to Configure Connection Timeouts and Retries in Zendriver](/cdpdriver/zendriver/how-to-configure-connection-timeouts-and-retries-in-zendriver)

Learn to configure connection timeouts and retries in Zendriver for stable CDP connections. Optimize your browser connection settings and WebSocket keep-alive behavior.

- Tags: how-to-guide
- Published: 2026-02-27

### [How to Enable Expert Mode for Advanced Debugging in Zendriver](/cdpdriver/zendriver/how-to-enable-expert-mode-for-advanced-debugging)

Unlock advanced debugging in Zendriver by enabling expert mode. Set expert=True in the Config constructor for permissive Chrome flags and shadow DOM inspection.

- Tags: how-to-guide
- Published: 2026-02-27

### [How to Disable WebRTC and WebGL in Zendriver for Privacy](/cdpdriver/zendriver/how-to-disable-webrtc-and-webgl-for-privacy)

Enhance privacy by disabling WebRTC and WebGL in Zendriver. Learn how to block IP leaks and canvas fingerprinting using simple config settings for secure browsing.

- Tags: how-to-guide
- Published: 2026-02-27

### [How to Manage Multiple Browser Tabs and Windows in Zendriver](/cdpdriver/zendriver/how-to-manage-multiple-browser-tabs-and-windows)

Master browser tab and window management with Zendriver. Programmatically control multiple contexts using the Chrome DevTools Protocol. Open, switch, resize, and close tabs seamlessly.

- Tags: how-to-guide
- Published: 2026-02-27

### [How to Configure user_data_dir for Persistent Browser Profiles in Zendriver](/cdpdriver/zendriver/how-to-configure-and-utilize-user_data_dir-for-browser-profiles)

Learn how to configure user_data_dir in Zendriver for persistent browser profiles. Save cookies, extensions, and login states across sessions.

- Tags: how-to-guide
- Published: 2026-02-27

### [How to Pass Custom Arguments to the Browser Executable in Zendriver](/cdpdriver/zendriver/how-to-pass-custom-arguments-to-browser-executable)

Learn how to pass custom arguments to the browser executable in zendriver using browser_args. Explore multiple methods for efficient browser control and customization.

- Tags: how-to-guide
- Published: 2026-02-27

### [How to Send Keyboard Events and Key Combinations with Zendriver](/cdpdriver/zendriver/how-to-send-keyboard-events-and-key-combinations-with-zendriver)

Learn to send keyboard events and key combinations with Zendriver using Python. Utilize the KeyEvents class and Element send_keys method for efficient automation.

- Tags: how-to-guide
- Published: 2026-02-27

### [How to Handle and Expect File Downloads with Zendriver](/cdpdriver/zendriver/how-to-handle-and-expect-file-downloads-with-zendriver)

Learn how to handle and expect file downloads with Zendriver. Use the async API and Tab.expect_download() to intercept and capture browser downloads effectively.

- Tags: how-to-guide
- Published: 2026-02-27

### [How to Enable Zendriver's best_match for Precise Element Lookup](/cdpdriver/zendriver/how-to-enable-zendrivers-best_match-for-element-lookup)

Learn to enable Zendriver's best_match for precise element lookup. Pass best_match=True to find() or find_element_by_text() for more relevant results.

- Tags: how-to-guide
- Published: 2026-02-27

### [How to Wait for Elements with a Specific Timeout in Zendriver](/cdpdriver/zendriver/how-to-wait-for-elements-with-specific-timeout-in-zendriver)

Learn how to wait for elements with a specific timeout in Zendriver using Tab.wait_for, Tab.select, or Tab.select_all. Avoid issues by setting custom timeouts for element polling.

- Tags: how-to-guide
- Published: 2026-02-27

### [How to Intercept and Modify Network Requests and Responses in Zendriver](/cdpdriver/zendriver/how-to-intercept-and-modify-network-requests-and-responses)

Learn to intercept and modify network requests and responses using Zendriver's Tab.intercept() context manager. Pause, inspect, and alter HTTP traffic effortlessly.

- Tags: how-to-guide
- Published: 2026-02-27

### [How to Debug Web Elements Using Zendriver’s Descriptive `repr`](/cdpdriver/zendriver/how-to-debug-web-elements-using-zendrivers-descriptive-repr)

Debug web elements efficiently with Zendriver's descriptive repr. Understand element tag, attributes, and text instantly for faster debugging without DOM serialization.

- Tags: how-to-guide
- Published: 2026-02-27

### [How to Find and Interact with Elements Within Iframes Using Zendriver](/cdpdriver/zendriver/how-to-find-and-interact-with-elements-within-iframes)

Learn how to find and interact with elements within iframes using Zendriver. Discover how Zendriver simplifies iframe interaction by treating them as regular DOM nodes.

- Tags: how-to-guide
- Published: 2026-02-27

### [How to Manage Cookies for Session Persistence in Zendriver: A Complete Guide](/cdpdriver/zendriver/how-to-manage-cookies-for-session-persistence-in-zendriver)

Learn to manage cookies for session persistence in Zendriver using the CookieJar class. Save, load, and clear cookies easily for persistent sessions across browser restarts.

- Tags: how-to-guide
- Published: 2026-02-27

### [How to Send Custom Chrome DevTools Protocol (CDP) Commands with Zendriver](/cdpdriver/zendriver/how-to-send-custom-chrome-devtools-protocol-cdp-commands)

Learn to send custom Chrome DevTools Protocol CDP commands with Zendriver. Utilize the cdp package and domain modules to send any CDP command effortlessly.

- Tags: how-to-guide
- Published: 2026-02-27

### [How to Set a Custom User Agent String with Zendriver: 2 Methods Explained](/cdpdriver/zendriver/how-to-set-custom-user-agent-string-with-zendriver)

Learn two methods to set a custom user agent string with Zendriver for browser automation. Easily configure global or tab-specific user agents for your testing needs.

- Tags: how-to-guide
- Published: 2026-02-27

### [How to Configure Headless Mode in Zendriver](/cdpdriver/zendriver/how-to-configure-headless-mode-in-zendriver)

Learn to configure headless mode in Zendriver by setting headless=True in your Config object. This guide streamlines your automated browser tasks for enhanced efficiency.

- Tags: how-to-guide
- Published: 2026-02-27

