Detects or even crashes (❌) webdrivers such as:
- driverless
- with cdp-patches
- selenium ❌
- puppeteer ❌
- playwright ❌
- undetected-playwright (buggy)
- with cdp-patches (no test yet)
- botright
- with uc-playwright (buggy)
- with cdp-patches (no test yet)
- with uc-playwright (buggy)
- undetected-playwright (buggy)
- nodriver
- @ulixee/hero
For the tests, each webdriver has at least to click the button with the ID clickHere
navigator.webdriver
(JavaScript) is set to true
Runtime
is enabled
score here refers to the certainty of the
occurs when:
Runtime.enable
orConsole.enable
(CDP) has been called (most libraries do that, type=webdriver)- the user opens the devtools (type=devtools)
occurs due to crbug#1477537
CDP-Patches can be used to bypass this
a leak specific to chromedriver (selenium)
see stackoverflow-answer
Mouse event not dispatched by a user detected
see Event.isTrusted
property
CanvasRenderingContext2D.arc
has been called with
- cordinates +-5px at current mouse position
- canvas +-1px covers the whole page
- canvas passes pointerEvents through
navigator.userAgentData.getHighEntropyValues
has empty data
(type=HighEntropyValues.empty
, UA meaning UserAgent)
- Detects when selenium tries to inject a script (even used for finding elements)
- makes selenium (any chromedriver-based framework) crash (bypassable for testing
?crash=false
) - just don't use selenium lol
- detects
playwright>=1.46.1
, induced with commit
detects injected javascript based on the stack trace in hooks
a detection regarding PDF rendering,
specific to puppeteer github issue or --enable-field-trial-config
Note: There might be false-positives
crashes chrome when automated with playwright or puppeteer due to crbug#340836884
(bypassable for testing ?crash=false
)
feel free to
- open
[feature request]
s for driver detections - open PRs
- use the discussions
see LICENSE
Aurin Aegerter (aka Steve, kaliiiiiiiiii)
- selenium-detector
- jdetects
- thanks @ProseccoRider - some further
Runtime.enable
detection insights