What Is undetected-chromedriver? β Definition and Limits
Learn what undetected-chromedriver modifies, why it targets Selenium's default markers, what it cannot address, and how it is maintained.
undetected-chromedriver is a Python package that patches Selenium's Chrome driver so a browser started under automation does not expose the default markers that make it trivially identifiable.
1. What It Addresses
Selenium's standard configuration announces itself in several ways: automation flags exposed to page scripts, driver-injected properties, and command-line switches characteristic of automated launches.
The package patches the driver binary and adjusts launch options so those specific markers are absent.
2. How It Is Used
import undetected_chromedriver as uc
driver = uc.Chrome()
driver.get("https://example.com")
The interface deliberately mirrors ordinary Selenium, so existing scripts change very little.
3. What It Does Not Address
| Layer | Unaffected because |
|---|---|
| Network reputation | The address is unchanged |
| TLS fingerprint | Determined by the browser's own stack |
| HTTP/2 characteristics | Same |
| Behaviour | Timing and interaction are evaluated separately |
| Request volume | Rate is a policy question, not a configuration one |
A client patched at the browser layer and sending a thousand uniformly spaced requests from one datacenter address remains straightforward to identify.
4. Version Coupling
The package patches a specific driver for a specific Chrome version. Chrome updates frequently, and driver behaviour changes with it, so the package requires ongoing updates to keep working.
Practical consequences: pin versions in production, expect periodic breakage after browser updates, and test after every upgrade.
5. Effectiveness Is Not Static
Detection evolves, and any specific patch's effectiveness varies by site and over time. Claims of undetectability age quickly, which is why the honest framing is "removes default markers" rather than "avoids detection".
6. Legitimate Uses
- Testing a site as an ordinary visitor rather than as automation.
- QA and monitoring contracted by the site owner.
- Accessibility tooling whose default configuration trips detection.
- Research into detection behaviour.
Using it to continue after a site has deliberately refused access is a different activity, governed by that site's terms rather than by what is technically possible.
7. The Alternatives Worth Considering First
- An API, where one exists, which is stable and sanctioned.
- Permission and an allow-list entry for sustained collection.
- Reducing volume, which resolves a large share of friction on its own.
- A plain HTTP request, where a browser was never actually needed.
8. Summary
undetected-chromedriver patches Selenium's Chrome driver to remove the automation markers a default configuration exposes, with an interface close to ordinary Selenium.
It addresses one layer only, is tightly coupled to browser versions, and its effectiveness varies and changes. For anything sustained, permission and volume discipline are more durable than any patch.