You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac下ChromeDriver启动时无法配置特定URL证书自动选择(Java+Selenium测试)

解决Chrome自动化测试中证书自动选择的问题

一、修复plist文件的配置与权限问题

你之前创建的/Library/Preferences/com.google.Chrome.plist文件消失,大概率是权限不对或者配置格式有问题。按以下步骤操作:

  • 修正plist格式:你提供的plist里存在中文引号(如"1.0″的末尾引号),需替换为英文双引号。正确配置如下:
<plist version="1.0">
 <dict>
     <key>AutoSelectCertificateForUrls</key>
     <array>
         <string>{"pattern":"*://your-domain.com/*","filter":{"ISSUER":{"CN":"你的证书名称"}}}</string>
     </array>
 </dict>
</plist>
  • 设置正确权限:打开终端执行以下命令,确保文件归属和权限符合系统要求:
sudo chown root:wheel /Library/Preferences/com.google.Chrome.plist
sudo chmod 644 /Library/Preferences/com.google.Chrome.plist
  • 重启Chrome进程:彻底关闭所有Chrome窗口和后台进程,再启动ChromeDriver,文件就不会被自动删除了。

二、通过ChromeOptions直接注入证书配置

如果修改全局plist文件无效,可以在代码中通过ChromeOptions直接加载自定义偏好,无需依赖系统文件:

ChromeOptions options = new ChromeOptions();
// 配置证书自动选择规则,替换为你的实际域名和证书名称
String certRule = "[{\"pattern\":\"*://your-domain.com/*\",\"filter\":{\"ISSUER\":{\"CN\":\"你的证书名称\"}}}]";
options.setExperimentalOption("prefs", Map.of(
    "AutoSelectCertificateForUrls", certRule
));
// 可选:添加忽略证书错误的参数
options.addArguments("--ignore-certificate-errors");
options.addArguments("--ignore-ssl-errors");

WebDriver driver = new ChromeDriver(options);

注意:pattern支持通配符,比如*://*.example.com/*可匹配该域名下所有子地址。

三、验证配置是否生效

  • 手动打开Chrome,输入chrome://policy/,查看AutoSelectCertificateForUrls策略是否存在且配置正确。
  • 若通过代码配置,启动Driver后访问chrome://policy/,确认策略已成功加载。

内容的提问来源于stack exchange,提问作者Товарищ тестировщик

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 04:43:14