What it is
A browser driven by software leaves marks: the standard navigator.webdriver flag, global variables injected by Selenium, PhantomJS, Nightmare and RPA tools, ChromeDriver’s $cdc_ document property, a HeadlessChrome User-Agent, a zero-sized window, and side effects of an attached DevTools client.
How websites read it
navigator.webdriver // true under WebDriver
'__selenium_unwrapped' in window // framework globals
document.$cdc_asdjflasutopfhvcZLmcfl_ // ChromeDriver markerMost checks are property lookups. The DevTools probe is subtler: serialising an Error to the console reads its stack getter only while a debugger is attached — which also fires when a developer simply opens DevTools, so it counts for little.
Why it identifies you
These are not identity signals; they are honesty signals. A browser that admits to being automated is treated as a bot regardless of how consistent its fingerprint is, so they are checked first and weighted heavily.
How risk-control systems use it
navigator.webdriver = true or any framework global is a hard stop on most platforms. Headless indicators and a missing window.chrome on a Chrome UA come next. Overridden navigator getters — the standard way stealth plugins hide the flag — are detected by checking that each getter is still native code.
Common mistakes
Launching with a WebDriver session instead of attaching to a running profile; "stealth" patches that replace native getters with JavaScript ones; headless mode for anything that faces a login page.
Mango is accepting waitlist registrations. These capabilities describe its first release; client access opens with invitations.
How Mango Browser handles it
Not applicableMango provides Local API for managing profiles from scripts and MCP for connecting external AI tools. Browser-control protocols depend on the selected engine and integration; the Lab reports the automation signals visible in the browser being tested.
Check yours
Jump to this signal in your scan results.