<aside> 😀 今天我们来讲一下selenium自动化怎么永久去除痕迹。本系列的浏览器编译魔改完的浏览器会放在星球上。

</aside>

📝 主旨内容

Selenium技术概述

Selenium是业界主流的Web自动化测试框架,通过WebDriver协议实现对浏览器的程序化控制。它能够精确模拟用户交互行为,包括页面导航、元素定位、表单操作等复杂场景,因此在自动化测试、数据采集等领域得到广泛应用。

Selenium的工作机制本身会在浏览器环境中留下特定的技术指纹。当浏览器通过ChromeDriver等WebDriver组件启动时,会在运行时环境中注入特定的JavaScript对象和属性,这些特征可能被网站的反自动化系统识别和拦截。

检测机制分析:WebDriver指纹识别

现代网站通常通过JavaScript运行时环境分析来识别自动化工具。

// WebDriver特征检测代码
const webdriverPattern = /^([a-z]){3}_.*_(Array|Promise|Symbol|JSON|Object|Proxy)$/;
const windowProperties = Object.getOwnPropertyNames(window);
const suspiciousProperties = windowProperties.filter(prop => webdriverPattern.test(prop));

console.log('检测到的WebDriver属性:', suspiciousProperties);

正常浏览器环境输出:


检测到的WebDriver属性:[]

Selenium控制的浏览器输出:


检测到的WebDriver属性:[
  'cdc_adoQpoasnfa76pfcZLmcfl_Array',
  'cdc_adoQpoasnfa76pfcZLmcfl_Object',
  'cdc_adoQpoasnfa76pfcZLmcfl_Promise',
  'cdc_adoQpoasnfa76pfcZLmcfl_Proxy',
  'cdc_adoQpoasnfa76pfcZLmcfl_Symbol',
  'cdc_adoQpoasnfa76pfcZLmcfl_JSON'
]

这些以cdc_前缀开头的属性是ChromeDriver在运行时注入的内部对象,成为了识别自动化环境的关键指纹。

代码测试

自动化正常情况

我们打开一个检测网站,可以看到目前是被他检测到了。我们也可以用JavaScript捕获到痕迹。

这个是检测selenium的一种手段,当然检测还有很多种。我们后面也会来慢慢处理掉这些痕迹。

image.png