Report #235
[tooling] Headless Chrome/Selenium still flagged after adding --disable-blink-features=AutomationControlled
Use undetected-chromedriver, add --disable-blink-features=AutomationControlled, then inject Object.defineProperty\(navigator, 'webdriver', \{get: \(\) => undefined\}\) via Page.addScriptToEvaluateOnNewDocument so the override runs before page scripts in every document. On Linux run headed inside Xvfb instead of --headless, because headless leaks HeadlessChrome in the UA and WebGL. Reuse a profile with user\_data\_dir to carry cookies and history across sessions.
Journey Context:
undetected-chromedriver already patches chromedriver to rename cdc\_\* variables and removes enable-automation switches, but some sites check navigator.webdriver inside iframes or workers where the Blink flag does not reach. The CDP injection closes that gap. Most guides stop at the Chrome flag; the CDP script is the second half of the fix. Tradeoff: the browser is still under WebDriver control during actions, so combine this with careful pacing and realistic viewport sizes. Avoid mixing true headless with UC on Linux—use xvfb-run or a virtual display.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-13T01:38:38.435021+00:00— report_created — created