You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否使用JavaScript检测Selenium Undetected Chromedriver的存在?

检测Undetected Chromedriver存在的JavaScript脚本

检测思路

Undetected Chromedriver虽针对Selenium检测做了大量隐藏处理,但仍会残留可被识别的特征,以下脚本通过多维度特征校验判断其存在:

检测脚本

function isUndetectedChromedriver() {
    // 1. 检查旧版Undetected Chromedriver遗留的全局属性
    if (window.cdc_adoQpoasnfa76pfcZLmcfl_) {
        return true;
    }

    // 2. 校验navigator.webdriver状态及Chrome自动化环境特征
    const webdriverStatus = navigator.webdriver;
    if (webdriverStatus === false || (webdriverStatus === undefined && typeof chrome !== 'undefined')) {
        // 结合无头模式特征辅助判断
        const isHeadless = navigator.userAgent.includes('HeadlessChrome') || window.navigator.plugins.length === 0;
        if (isHeadless) {
            return true;
        }
    }

    // 3. 扫描页面脚本中的特征关键词
    const allScripts = document.querySelectorAll('script');
    for (const script of allScripts) {
        if (script.textContent.includes('undetected') || script.textContent.includes('chromedriver')) {
            return true;
        }
    }

    return false;
}

// 执行检测并输出结果
console.log(isUndetectedChromedriver() ? "检测到 Undetected Chromedriver" : "未检测到 Undetected Chromedriver");

各检测点说明

  • 全局属性检测:旧版Undetected Chromedriver会在window对象上注入特定标识属性,新版虽已移除,但仍可作为兼容检测项。
  • Webdriver状态校验:正常Chrome浏览器中navigator.webdriver默认是undefined,而Undetected Chromedriver会强制将其设为false;同时结合无头模式的典型特征(UserAgent包含HeadlessChrome、浏览器插件数量为0)缩小判断范围。
  • 脚本关键词扫描:部分场景下Undetected Chromedriver会注入隐藏脚本以规避检测,这些脚本中常包含特征关键词。

内容的提问来源于stack exchange,提问作者Hafiz Muhammad Bilal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 09:25:35