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

如何缩短Chrome初始化时长?Selenium自动化测试启动慢问题咨询

ChromeDriver启动缓慢的排查与解决办法

我之前也碰到过ChromeDriver启动慢到让人抓狂的情况,结合你的代码和踩过的坑,整理了几个最可能的原因和对应的解决办法:

1. 代理配置是重灾区

你的代码里配置了HTTP代理,如果代理服务器响应延迟高、网络不稳定,或者代理需要认证但没做相关配置,Chrome启动时会卡在代理协商环节,甚至超时等待。

解决办法:

  • 先做个快速测试:注释掉代理相关代码,看看Chrome启动速度是否恢复正常。如果是,那肯定是代理的问题。
  • 检查代理服务器的连通性:用Chrome手动配置同样的代理,访问网页看加载速度。如果手动访问也慢,联系运维调整代理,或者换更稳定的代理。
  • 如果代理需要认证,可借助系统代理配置或第三方扩展实现认证(ChromeDriver本身不直接支持代理认证)。

2. 禁用W3C模式拖慢协议协商

你代码里设置了options.setExperimentalOption("w3c", false);,这个配置会强制ChromeDriver使用旧版的Chrome协议,而现在新版本的Chrome对旧协议的兼容性越来越差,启动时协议协商的过程会变得异常缓慢。

解决办法:
直接移除这行代码!现在Chrome 75+和ChromeDriver 75+默认都支持W3C模式,完全没必要禁用,移除后启动速度大概率会提升。

3. Chrome与ChromeDriver版本不匹配

这是自动化测试里最常见的坑之一:如果Chrome浏览器的版本和ChromeDriver的版本差距过大,两者之间会出现兼容性问题,启动时会花费大量时间做版本适配,甚至直接失败。

解决办法:

  • 打开Chrome,在地址栏输入chrome://version/查看浏览器版本(比如118.0.5993.70)。
  • 下载对应主版本号的ChromeDriver(比如Chrome是118.x,就下载118.x系列的ChromeDriver),替换掉当前使用的驱动。

4. 下载目录的权限/存在性问题

你设置了download.default_directory,但如果这个目录不存在,或者当前运行测试的用户没有读写权限,Chrome启动时会尝试创建目录或者处理权限校验,这个过程可能会卡住很久。

解决办法:
在代码里先检查并创建下载目录:

File downloadDir = new File(DownloadFolderPathDriver);
if (!downloadDir.exists()) {
    downloadDir.mkdirs();
}

同时确保运行测试的用户对该目录有读写权限(比如Windows下不要把目录设为C盘根目录,Linux下不要设为root权限的目录)。

5. Chrome启动时加载过多冗余项

默认情况下,Chrome启动会加载扩展、插件、默认应用等,这些都会占用启动时间。如果你的测试不需要这些,完全可以禁用它们。

解决办法:
给ChromeOptions添加这些优化参数:

options.addArguments("--disable-extensions"); // 禁用所有扩展
options.addArguments("--disable-plugins"); // 禁用插件
options.addArguments("--disable-background-networking"); // 禁用后台网络请求
options.addArguments("--no-first-run"); // 跳过首次运行的配置向导
options.addArguments("--disable-default-apps"); // 禁用默认应用

6. 系统资源不足

如果运行测试的机器CPU、内存不足,Chrome启动时需要加载大量资源(比如渲染进程、GPU进程等),就会变得很慢。

解决办法:

  • 关闭测试机器上其他占用资源的程序(比如后台的视频播放器、大型软件)。
  • 如果是长期的测试环境,考虑升级机器的内存或者CPU。
  • 可以给Chrome添加--low-memory参数,让Chrome使用更少的内存(不过可能会影响测试中的页面加载速度,按需使用)。

调整后的参考代码

结合上面的优化点,你的代码可以改成这样:

// 先确保下载目录存在且有权限
File downloadDir = new File(DownloadFolderPathDriver);
if (!downloadDir.exists()) {
    downloadDir.mkdirs();
}

System.setProperty("webdriver.chrome.driver", System.getProperty("chromeDriverPath"));
ChromeOptions options = new ChromeOptions();
Map<String, Object> chromePrefs = new HashMap<String, Object>();
chromePrefs.put("profile.default_content_settings.popups", 0);
chromePrefs.put("profile.content_settings.exceptions.automatic_downloads.*.setting", 1 );
chromePrefs.put("download.prompt_for_download", false);
chromePrefs.put("download.default_directory", DownloadFolderPathDriver);

// 移除W3C禁用设置,使用默认W3C模式
options.setExperimentalOption("prefs", chromePrefs);

// 代理配置:先测试代理可用性,确认没问题再开启
// proxy.setHttpProxy(proxyIp+":"+proxyPort);
// options.setCapability(CapabilityType.PROXY, proxy);

// 添加启动优化参数
options.addArguments("--disable-extensions");
options.addArguments("--disable-plugins");
options.addArguments("--disable-background-networking");
options.addArguments("--no-first-run");
options.addArguments("--disable-default-apps");

driver = new ChromeDriver(options);

内容的提问来源于stack exchange,提问作者Alpha

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:08:47