在 Windows 上从 Chromium 源码编译自定义 ChromeDriver,需要准备以下环境和至少 50GB 存储空间。
环境准备#
- Windows 10 Pro 2004 (19041.329)
- Visual Studio 2019
- “使用 C++ 的桌面开发”
- C++ v14.25 ATL for v142 生成工具(x86 和 x64)
- C++ v14.25 MFC for v142 生成工具(x86 和 x64)
- Windows 10 SDK (SDK 版本不能小于10.0.19041)
- “Debugging Tools for Windows”
- Git
- 存储源码的空间至少 50 GB
步骤#
下载编译工具包#
配置环境变量#
因为工具包本身携带了python,为了避免系统的python影响导致失败。
在系统环境变量中配置工具包的路径,务必保证在最前面。

另外需要添加一个系统变量
| |
获取源码#
进入目录后使用命令
| |
此处大约需要半个多小时吧…
根据个人网络情况有所不同
完成后的目录结构
执行完成后执行
| |
切换版本#
因为每天都有很多commit进入master分支,我们需要是对应自己需要的版本来编译ChromeDriver。
所以根据自己安装的Chrome或者是需要的版本来编译。
首先进入 src 目录,执行下面的命令
| |
编译测试#
进入src目录,执行配置文件生成命令
| |
此命令是生成正式版本的,先生成一次确认一下环境和其他是否有问题
接着开始编译
| |
其中 “-jN” 根据你CPU的核心数量定义
编译过程在我 AMD 3700X 的机器上耗时 10 分钟左右,具体时间需要根据机器配置来。
(十分消耗资源呢….)
完成后,文件在 src\out\Release 中。
测试可以正常执行就就可以下一步了
修改特征#
特征文件路径:src\chrome\test\chromedriver\js\call_function.js

这里的 “cdc_asdjflasutopfhvcZLmcfl_” 就是多数验证滑块检测是否由ChromeDriver驱动的地方。
一般是通过下面的方法来断定
| |

我们直接把这串改成别的随机串即可。例如 “CXsHPv8coH9i2iO8uWXRremABR_”

然后在根据上一个步骤去编译,成功后测试就会发现已经无法检测出特征了。