chrome driver(selenium)相关参数

一、Chrome Driver 是什么

Chrome standalone版本下载链接

参考文档: ChromeDriver - Google

WebDriver 是一款开源工具,专为在多种浏览器中自动测试 Web 应用而打造。借助其接口,您可以使用功能在本地或远程控制和自省用户代理。 ChromeDriver 是一个实现了 W3C WebDriverWebDriver BiDi 标准的独立的服务。

Capability 是一组不依赖于语言的键值对,用于定义 WebDriver 会话的所需功能和行为。在创建 WebDriver 实例时,通常会将功能作为参数传递,并且可用于指定浏览器设置,例如浏览器名称、版本和网页加载策略。

ChromeDriver 通过添加 Chromium 专用功能来扩展 Webdriver。它使用 ChromeOptions 对象将 WebDriver API 中的功能传递给 ChromeDriver。某些 Chromium 专用功能包括安装扩展程序、更改窗口类型以及在启动时传递命令行参数。

如果要查看完整的 WebDriver 命令和 ChromeDriver 对它们的支持度,可以参考:WebDriver Status

更多文档参考:Chromium Docs

二、下载 Chrome Driver

  1. 如需下载最新的 ChromeDriver 二进制文件,您可以使用 JSON 端点 获取最新的下载链接。
  2. 从 M115 开始,可以访问 Chrome 测试版可用性信息中心,查看各个发布渠道(稳定版、Beta 版、开发者版、Canary 版)的最新 ChromeChromeDriver 版本。

JSON API endpoints (相关的下载链接)

Endpoint Description
known-good-versions.json The versions for which all CfT assets are available for download. Useful for bisecting.
known-good-versions-with-downloads.json Same as above, but with an extra downloads property for each version, listing the full download URLs per asset.
last-known-good-versions.json The latest versions for which all CfT assets are available for download, for each Chrome release channel (Stable/Beta/Dev/Canary).
last-known-good-versions-with-downloads.json Same as above, but with an extra downloads property for each channel, listing the full download URLs per asset.
latest-patch-versions-per-build.json The latest versions for which all CfT assets are available for download, for each known combination of MAJOR.MINOR.BUILD versions.
latest-patch-versions-per-build-with-downloads.json Same as above, but with an extra downloads property for each version, listing the full download URLs per asset.
latest-versions-per-milestone.json The latest versions for which all CfT assets are available for download, for each Chrome milestone.
latest-versions-per-milestone-with-downloads.json Same as above, but with an extra downloads property for each milestone, listing the full download URLs per asset.

Other API endpoints

由于历史原因, LATEST_RELEASE_ 文件也包含了完整的可用版本号。

1
2
# 网址前缀如下:
https://googlechromelabs.github.io/chrome-for-testing/LATEST_RELEASE_*
  1. 比如 LATEST_RELEASE_116 会响应 116 开头的最新的可用版本号。
  2. 比如 LATEST_RELEASE_116.0.5845 会响应 116.0.5845.* 中最新的可用版本号。
  3. 比如 LATEST_RELEASE_STABLE 会响应最新的稳定版版本号,其他可用的通道还有 (BETA/DEV/CANARY)。
  4. 这些规则也可以用于 laest-versions-per-milestone, latest-patch-versions-per-build, and last-known-good-versions
  5. 同时,known-good-versions-with-downloads.json 中的每一个版本也都提供了一个JSON链接,内含下载链接。比如:123.0.6309.0.json
  6. 所有可用的JSON链接信息:browse the complete list of JSON and text files

选择要下载的 ChromeDriver 版本的步骤如下:

1
2
3
4
5
6
7
首先,确定您当前所用的 Chrome 版本。假设您使用的是 `Chrome 72.0.3626.81`获取 `Chrome` 版本号,移除最后一部分,然后将结果附加到网址 `https://chromedriver.storage.googleapis.com/LATEST_RELEASE_`。例如,如果 `Chrome` 版本为 `72.0.3626.81`,您会获得网址 `https://chromedriver.storage.googleapis.com/LATEST_RELEASE_72.0.3626`使用上一步中创建的网址检索包含要使用的 `ChromeDriver` 版本的小文件。例如,上述网址将获取包含 `72.0.3626.69` 的文件。
使用从上一步中检索到的版本号构建网址,以下载 `ChromeDriver`。如果版本为 `72.0.3626.69`,则网址为 `https://chromedriver.storage.googleapis.com/index.html?path=72.0.3626.69/`完成初始下载后,建议您偶尔重新执行上述流程,看看是否有任何问题修复版本。
每个版本的 `ChromeDriver` 支持所有匹配 `x.y.z` 版本号的 `Chrome`,比如 `73.0.3683.20` 支持所有 `73.0.3683` 开头版本号的 `Chrome`[chromium 各版本快照地址](https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html)

三、ChromeOptions 选项和参数

姓名 类型 默认 说明
args 字符串列表 启动 Chrome 时使用的命令行参数列表。带有关联值的参数应以“=”符号分隔(例如,[“start-maximized”,“user-data-dir=/tmp/temp_profile”])。查看 Chrome 参数列表
binary 字符串 指向要使用的 Chrome 可执行文件的路径。在 macOS X 上,这应是实际二进制文件,而不仅仅是应用,例如 /Applications/Google Chrome.app/Contents/MacOS/Google Chrome。
extensions 字符串列表 要随系统启动时安装的 Chrome 扩展程序的列表。列表中的每个项都应为 base-64 编码的已打包 Chrome 扩展程序 (.crx)
localState 字典 一个字典,其中每个条目都由偏好设置的名称及其值组成。这些偏好设置会应用于用户数据文件夹中的 Local State 文件。
prefs 字典 一个字典,其中每个条目都由偏好设置的名称及其值组成。这些偏好设置仅应用于当前使用的用户个人资料。如需查看示例,请参阅 Chrome 用户数据目录中的“偏好设置”文件。
detach 布尔值 false 如果为 false,则无论会话是否退出,ChromeDriver 被终止时 Chrome 都会退出。如果为 true,则只有在会话退出或关闭时,Chrome 才会退出。如果为 true 且会话未退出,ChromeDriver 将无法清理正在运行的 Chrome 实例使用的临时用户数据目录。
debuggerAddress 字符串 要连接到的 Chrome 调试程序服务器的地址,格式为 <hostname/ip:port>,例如“127.0.0.1:38947”
excludeSwitches 字符串列表 用于排除 ChromeDriver 在启动 Chrome 时默认传递的 Chrome 命令行开关的列表。请勿在开关前添加 -- 前缀。
minidumpPath 字符串 用于存储 Chrome 迷你转储的目录。(仅在 Linux 上受支持。)
mobileEmulation 字典 一个字典,其中包含“deviceName”的值,或“deviceMetrics”和“userAgent”的值。如需了解详情,请参阅移动设备模拟。
perfLoggingPrefs 字典 一个可选字典,用于指定性能日志记录偏好设置。如需了解详情,请参阅下文。
windowTypes 字符串列表 窗口句柄列表中显示的窗口类型的列表。 如需访问 WebView 元素,请在此列表中添加“WebView”。
enableExtensionTargets 布尔值 false 启用 Chrome 扩展程序目标的自省。默认情况下,ChromeDriver 不包含扩展程序目标(从 Chrome 136 开始)。

四、Chrome定制化相关参数

4.1 相关文件

位置 文件 说明
Chrome 安装目录 initial_preferences 仅在首次启动时读取的初始配置(需 First Run 不存在)。
Chrome 安装目录 User Data/Default 默认 Profile 的数据目录,未登录时的主配置
Chrome 安装目录 Local State 记录全局状态(如已安装的 Profile)
Chrome 安装目录 Extensions 所有用户的扩展程序(跨Profile共享)
用户 profile 目录 First Run 标记浏览器是否已完成首次启动
用户 profile 目录 Bookmarks 书签数据(JSON格式)
用户 profile 目录 History 浏览历史记录(SQLite数据库)
用户 profile 目录 Cookies 网站Cookies(加密SQLite数据库)
用户 profile 目录 Login Data 保存的密码(加密SQLite数据库)
用户 profile 目录 Preferences 用户偏好设置(JSON格式,如默认搜索引擎、主页)
用户 profile 目录 Web Data 自动填充表单数据(如地址、信用卡信息)
用户 profile 目录 Favicons 网站图标缓存
用户 profile 目录 Session Storage/ 会话存储数据(HTML5本地存储)

4.2 启动时相关参数

完整参数列表参考:List of Chromium Command Line Switches

参数` 作用 适用场景
--no-first-run 跳过首次运行的欢迎页面和初始设置向导 批量部署、自动化测试
--disable-first-run-ui 同 --no-first-run,禁用首次运行界面 同上
--kiosk 启用全屏 kiosk 模式,禁用所有浏览器控件 公共终端、展示模式
--start-maximized 启动时窗口自动最大化 统一用户体验
--incognito 直接以无痕模式启动 隐私需求
--disable-extensions 禁用所有扩展 故障排查、性能测试
--disable-extensions-except=<路径> 禁用除指定路径外的所有扩展 安全控制
--disable-popup-blocking 禁用弹窗拦截 测试特定网页行为
--disable-default-apps 禁止安装 Chrome 默认应用(如 PDF 查看器) 精简安装
--disable-sync 禁用 Google 账号同步功能 企业隐私策略
--disable-background-networking 禁止后台网络通信(如自动更新、安全检测) 减少资源占用
--disable-breakpad 禁用崩溃报告上传 隐私保护
--disable-infobars 隐藏提示栏(如“Chrome 由管理员管理”) 自动化测试
--no-default-browser-check 跳过默认浏览器检查 避免提示干扰
--noerrdialogs 禁止显示错误对话框(如崩溃提示) 无人值守运行
--disable-web-security 关闭同源策略(危险,仅用于开发) 前端开发调试
--user-data-dir=<路径> 指定自定义用户数据目录 多实例并行测试
--load-extension=<路径> 启动时加载指定扩展 扩展开发调试
--proxy-server=<地址:端口> 强制使用指定代理服务器 网络调试
--lang=<语言代码> 设置浏览器语言(如 --lang=zh-CN) 多语言环境
--remote-debugging-port=<端口> 启用远程调试(DevTools 监听指定端口) 自动化工具(如 Puppeteer)
--headless 无界面模式运行(需配合 --disable-gpu) 服务器端渲染/测试
--disable-gpu 禁用 GPU 硬件加速(解决渲染问题) 兼容性故障排查
--autoplay-policy=no-user-gesture-required 允许自动播放媒体(无需用户交互) 多媒体应用
--allow-running-insecure-content 允许加载混合内容(HTTP + HTTPS) 测试老旧网站
--host-rules="MAP * 127.0.0.1" 重定向所有请求到本地(调试劫持) 开发环境模拟

4.3 企业策略配置

企业策略配置是通过组策略配置Chrome行为的一种方式,需要先下载配置模板放到系统指定目录以开启,下面是详细步骤。

  1. 下载并解压缩 基于 XML 的管理模板 (ADMX)
  2. 打开 GoogleUpdateAdmx 文件夹。
  3. google.admxGoogleUpdate.admx 复制到 Policy Definitions(策略定义)文件夹(例如:C:\Windows\PolicyDefinitions)。
  4. GoogleUpdateAdmx/zh-CN 文件夹中的 google.admlGoogleUpdate.adml 文件复制到 Policy Definitions(策略定义)文件夹下的 en-US 文件夹(例如:C:\Windows\PolicyDefinitions\en-US)。
  5. 打开组策略,然后转到 计算机配置 接着点击 策略 接着点击 管理模板 接着点击 Google ,验证模板是否已正常加载。

相关文档:

组策略的配置底层以注册表的形式存在,所以也可以通过更改注册表的形式来设置相应功能,部分设置示例如下。

更新组策略或注册表后,打开 Chrome,可以访问 chrome://policy/ 来查看已经生效的策略。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Windows Registry Editor Version 5.00
; chrome version: 138.0.7204.158

; 删除之前的键值
[-HKEY_LOCAL_MACHINE\Software\Policies\Google\Chrome]

; 强制性策略,用户无法修改
[HKEY_LOCAL_MACHINE\Software\Policies\Google\Chrome]
; 检查默认浏览器
"DefaultBrowserSettingEnabled"=dword:00000000
; 拼写检查
"SpellcheckEnabled"=dword:00000000
; 保存并自动填充地址
"AutofillAddressEnabled"=dword:00000000
; 保存并自动填充支付方式
"AutofillCreditCardEnabled"=dword:00000000
; 记住密码并自动填充
"PasswordManagerEnabled"=dword:00000000
; 地址栏展示完整的URL
"ShowFullUrlsInAddressBar"=dword:00000001
; 拼写检查服务
"SpellCheckServiceEnabled"=dword:00000000
; 下载弹窗询问保存位置
;"PromptForDownloadLocation"=dword:00000000
; 默认下载位置,忽略DefaultDownloadDirectory值,忽略弹窗提醒
; 地址需要使用双反斜线格式
; 如果地址格式不对,下载时可能会显示出了点问题,最终下载失败
; 如果地址格式不对,下载时可能会显示弹窗,表现为默认地址失效
; 设置时可使用变量:[Supported Directory Variables](https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables/)
; "DownloadDirectory"="${profile}\\Downloads\\rpa-download-force"
; 下载限制,0=允许所有下载
"DownloadRestrictions"=dword:00000000
; 翻译
"TranslateEnabled"=dword:00000000
; 允许网站检查您是否已保存付款方式
"PaymentMethodQueryEnabled"=dword:00000000


; 建议性策略,用户可以修改
[HKEY_LOCAL_MACHINE\Software\Policies\Google\Chrome\Recommended]
; 使用外置的PDF阅读器打开PDF
"AlwaysOpenPdfExternally"=dword:00000000
; 显示书签栏
"BookmarkBarEnabled"=dword:00000000
; 默认下载位置,用户可改,会被用户目录下的Preferences文件覆盖
"DefaultDownloadDirectory"="${profile}\\Downloads\\rpa-download"

; 强制安装并开启指定扩展,用户无法禁用
[HKEY_LOCAL_MACHINE\Software\Policies\Google\Chrome\ExtensionInstallForcelist]
"1"="hofgfmmdolnmimplihglefekekfcfijf;https://clients2.google.com/service/update2/crx"

; Chrome更新相关(实际效果需进一步测试)
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Update]
; 设置Chrome保持在138大版本下,自动更新到138的最新版本。可指定更具体的子版本。
TargetVersionPrefix{8A69D345-D564-463C-AFF1-A69D9E530F96}="138."
; Chrome更新策略,0=不更新
Update{8A69D345-D564-463C-AFF1-A69D9E530F96}=dword:00000000
updatedupdated2026-02-052026-02-05