Windows编译ChromeDriver
环境准备
- 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 目录,执行下面的命令
gclient sync --with_branch_heads --with_tags
git fetch --tags
git checkout -b ChromeDriver tags/84.0.4147.85
gclient sync --with_branch_heads --with_tags
编译测试
进入src目录,执行配置文件生成命令
此命令是生成正式版本的,先生成一次确认一下环境和其他是否有问题接着开始编译 其中 "-jN" 根据你CPU的核心数量定义
编译过程在我 AMD 3700X 的机器上耗时 10 分钟左右,具体时间需要根据机器配置来。
(十分消耗资源呢....)
完成后,文件在 src\out\Release 中。
测试可以正常执行就就可以下一步了
修改特征
特征文件路径:src\chrome\test\chromedriver\js\call_function.js
这里的 "cdc_asdjflasutopfhvcZLmcfl_" 就是多数验证滑块检测是否由ChromeDriver驱动的地方。
一般是通过下面的方法来断定
console.log(window["$cdc_asdjflasutopfhvcZLmcfl_"]||document["$cdc_asdjflasutopfhvcZLmcfl_"]?true:false);

我们直接把这串改成别的随机串即可。例如 "CXsHPv8coH9i2iO8uWXRremABR_"
然后在根据上一个步骤去编译,成功后测试就会发现已经无法检测出特征了。