Chrome 128.X.X.X版本下Selenium Java自动化测试证书不被接受的问题
Chrome 128+ Selenium自动化跳过证书选择弹窗的解决方案
针对你遇到的Chrome升级后证书选择弹窗无法自动跳过的问题,可尝试以下几种方案:
1. 配置自动选择证书的URL规则
通过Chrome启动参数指定目标域名自动选择证书,结合偏好设置强制触发自动选择逻辑:
ChromeOptions options = new ChromeOptions(); // 配置自动选择证书的URL规则,替换为你的目标应用域名 options.addArguments("--auto-select-certificate-for-urls=https://your-app-domain.com/*"); // 添加偏好设置强化自动选择行为 Map<String, Object> prefs = new HashMap<>(); prefs.put("ssl.client_cert_select_callback", "true"); options.setExperimentalOption("prefs", prefs); // 保留原有安全配置 options.setAcceptInsecureCerts(true); // 初始化Driver WebDriver driver = new ChromeDriver(options);
2. 复用已配置证书的Chrome用户目录
如果手动使用的Chrome账号已经能自动选择该证书,可让Selenium复用这个用户目录,直接继承手动配置的证书偏好:
ChromeOptions options = new ChromeOptions(); // 替换为你的Chrome用户数据路径 // Windows示例:C:\\Users\\YourUsername\\AppData\\Local\\Google\\Chrome\\User Data // Mac示例:~/Library/Application Support/Google/Chrome options.addArguments("--user-data-dir=C:\\Users\\YourUsername\\AppData\\Local\\Google\\Chrome\\User Data"); // 指定具体配置文件,默认是Default options.addArguments("--profile-directory=Default"); options.setAcceptInsecureCerts(true); WebDriver driver = new ChromeDriver(options);
注意:运行前必须关闭所有手动打开的Chrome窗口,避免进程冲突。
3. 补充兼容性启动参数
除你已尝试的参数外,添加以下参数增强证书处理逻辑:
options.addArguments("--ignore-certificate-errors"); options.addArguments("--allow-running-insecure-content"); options.addArguments("--disable-client-side-phishing-detection");
4. 确保ChromeDriver与Chrome版本完全匹配
Chrome 128.0.6613.85必须搭配对应版本的ChromeDriver,版本不匹配会导致部分配置参数失效。请下载与Chrome版本完全一致的ChromeDriver。
内容的提问来源于stack exchange,提问作者Hiruni Dahanayake
相关产品推荐
相关产品推荐

