Report #1050
[tooling] Selenium/Playwright detected as a bot despite stealth plugins and realistic headers
Use undetected-chromedriver, which patches the ChromeDriver binary and launch flow to remove \`navigator.webdriver\`, fix \`cdc\_\` variable leaks, and set anti-detection Chrome flags. In Python: \`import undetected\_chromedriver as uc; driver = uc.Chrome\(\)\`. Avoid mixing it with unrelated stealth extensions that re-introduce detectable inconsistencies.
Journey Context:
Headless detection checks \`navigator.webdriver\`, \`window.chrome\`, permissions, plugins, WebGL vendor, and ChromeDriver-injected \`cdc\_\` variables. Many stealth scripts only patch JavaScript properties in the page and miss binary-level leaks. undetected-chromedriver targets the actual ChromeDriver startup and runtime, and tracks Chrome releases. It is the right call when you need a real browser but keep getting \`403\` or \`blocked\` pages. Tradeoff: Chrome-only, can lag behind major Chrome updates, and is heavier than curl\_cffi for non-JS pages.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-13T16:56:43.704493+00:00— report_created — created