ChromeDriver - Chrome 网络驱动程序

本文介绍如何使用ChromeOptions自定义ChromeDriver会话,包括配置代理、最大化窗口、使用自定义配置文件及设置首选项等。同时,提供了一张ChromeDriver支持的所有功能列表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

功能 & ChromeOptions

功能是可用于自定义和配置 ChromeDriver 会话的选项。本页记录所有 ChromeDriver 支持的功能以及如何使用它们。

WebDriver 语言 API 提供了将功能传递给 ChromeDriver 的方法。确切的机制因语言而异,但大多数语言使用以下一种或两种机制:
使用类。这得到 Java、Python 等的支持。ChromeOptions
使用类。Python、Ruby 等支持此功能。虽然它在 Java 中也可用,但它在 Java 中的用法被弃用。DesiredCapabilities

使用 Chrome 选项类

您可以创建 的实例,该实例具有设置 ChromeDriver 特定功能的便捷方法。然后,您可以将对象传递到 ChromeDriver 构造函数:ChromeOptionsChromeOptions

ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);

由于 Selenium 版本 3.6.0,Java 中的类也实现了该接口,允许您指定其他非 ChromeDriver 特有的 Web 驱动程序功能。ChromeOptionsCapabilities

ChromeOptions options = new ChromeOptions();
// Add the WebDriver proxy capability.
Proxy proxy = new Proxy();
proxy.setHttpProxy("myhttpproxy:3337");
options.setCapability("proxy", proxy);

// Add a ChromeDriver-specific capability.
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);
使用所需功能

要使用所需功能,您需要知道功能的名称及其所需的值类型。请参阅下面的完整列表。

Ruby
caps = Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" => {"args" => [ "--disable-web-security" ]})
driver = Selenium::WebDriver.for :remote, url: 'http://localhost:4444/wd/hub' desired_capabilities: caps
常见用例
使用自定义配置文件(也称为用户数据目录)

默认情况下,ChromeDriver 会为每个会话创建新的临时配置文件。有时您可能需要设置特殊首选项或完全使用自定义配置文件。如果是前者,您可以使用"chrome.prefs"功能(下文所述)来指定在 Chrome 启动后将应用的首选项。如果是后者,您可以使用 Chrome 命令行开关告诉 Chrome 使用哪个配置文件:user-data-dir

ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=/path/to/your/custom/profile");

只需将交换机设置为某个新目录即可运行 Chrome(在命令行上或通过 ChromeDriver),即可创建自己的自定义配置文件。如果路径不存在,Chrome 将在指定位置创建新配置文件。然后,您可以根据需要修改配置文件设置,ChromeDriver 以后可以使用配置文件。打开浏览器中的chrome://version以查看 Chrome 正在使用哪些配置文件。user-data-dir

开始 Chrome 最大化
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");
在非标准位置使用 Chrome 可执行文件
ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");
设置 Chrome 首选项
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("profile.default_content_settings.popups", 0);
options.setExperimentalOption("prefs", prefs);

已识别功能列表

这是 ChromeDriver 支持的所有 Web 驱动程序标准功能的列表:

Proxy对象

请参阅http://code.google.com/p/selenium/wiki/DesiredCapabilities#Proxy_JSON_Object

loggingPrefs对象

请参阅https://code.google.com/p/selenium/wiki/DesiredCapabilities#JSON_object

chromedriver选项对象

这是所有 Chrome 特定所需功能的列表,这些功能都位于Chrome 选项词典下。
如果可能,请使用ChromeOptions类,而不是直接指定这些课程。

名字类型默认描述
args字符串列表启动 Chrome 时要使用的命令行参数的列表。具有关联值的参数应用"+"符号分隔(例如,[启动-最大化’,“用户-数据-dir_/tmp/temp_profile”*)。有关 Chrome 参数的列表,请参阅此处。
binary字符串Chrome 可执行文件的路径(在 Mac OS X 上,这应该是实际的二进制文件,而不仅仅是应用程序,例如,’/应用程序/Google Chrome.app/内容/MacOS/谷歌 Chrome’)
extensions字符串列表启动时要安装的 Chrome 扩展程序列表。列表中的每个项目应为基本-64编码包装的 Chrome 扩展机 (.crx)
localState字典包含每个条目的字典,由首选项的名称及其值组成。这些首选项将应用于用户数据文件夹中的本地状态文件。
prefs字典包含每个条目的字典,由首选项的名称及其值组成。这些首选项仅应用于正在使用的用户配置文件。有关示例,请参阅 Chrome 用户数据目录中的"首选项"文件。
detach布尔如果为 false,则 Chrome 将在 ChromeDriver 终止时退出,无论会话是否退出。如果为 true,则仅当会话退出(或关闭)时,Chrome 才会退出。请注意,如果为 true,并且会话未退出,ChromeDriver 将无法清理正在运行的 Chrome 实例正在使用的临时用户数据目录。
debuggerAddress字符串以 <主机名/ip:port>形式连接到的 Chrome 调试器服务器的地址,例如"127.0.0.0.1:38947"
excludeSwitches字符串列表Chrome 命令行列表将切换以排除默认情况下在启动 Chrome 时通过的 ChromeDriver。不要用–.前缀开关
minidumpPath字符串目录存储 Chrome 迷你转储 。(仅在 Linux 上支持。
mobileEmulation字典具有"设备名称"值或"设备指标"和"用户代理"值的字典。有关详细信息,请参阅移动仿真。
perfLoggingPrefs字典指定性能日志记录首选项的可选字典。有关详细信息,请参阅下文。
窗口类型字符串列表窗口句柄列表中将显示的窗口类型的列表。要访问 元素,请在此列表中包括"Webview"。
perfLoggingPrefs对象

perf、C、S.Prefs 字典具有以下格式(所有键都是可选的):

名字类型默认描述
enableNetwork布尔是否从网络域收集事件。
enablePage布尔是否从主页域收集事件。
traceCategories字符串(空)应为其收集跟踪事件的由逗号分隔的 Chrome 跟踪类别字符串。未指定或空字符串禁用跟踪。
bufferUsageReportingInterval正整数1000DevTools 跟踪缓冲区使用事件之间的请求毫秒数。例如,如果为 1000,然后每秒一次,DevTools 将报告跟踪缓冲区的已满程度。如果报告指示缓冲区使用率为 100%,则会发出警告。
返回的功能

这是所有特定于 Chrome 的返回功能的列表。(即,当您创建新会话时,ChromeDriver 返回什么)

名字类型描述
chrome.chromedriverVersion字符串铬驱动器版本
userDataDir字符串Chrome 正在使用的用户数据目录的路径;注意,这是一个"铬"字典内
ChromeDriver 服务器命令行参数

运行chromedriver – 帮助查看版本的命令行参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值