Report #103877
[tooling] undetected-chromedriver is flaky and Selenium/WebDriver keeps leaking automation signals
Switch to nodriver, the async successor to undetected-chromedriver. It talks to Chrome directly over CDP with no chromedriver binary, launches a clean profile by default, and exposes tab.cf\_verify\(\) to click Cloudflare turnstile checkboxes.
Journey Context:
Selenium/ChromeDriver injects detectable variables \(cdc\_\*\) and relies on a separate binary. nodriver uses Chrome's DevTools Protocol directly, reducing the attack surface. It is async-first, automatically cleans up temp profiles, and has built-in helpers for text/element lookup and iframe search. It is especially handy when Playwright's CDP layer triggers Runtime.enable detection; nodriver is purpose-built for scraping rather than testing.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-13T04:51:32.287608+00:00— report_created — created