You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

Windows环境下Chrome测试偶现chrome not reachable WebDriverException求助

解决Windows上Chrome自动化测试间歇性“chrome not reachable”问题

我之前也碰到过这个间歇性的头疼问题,折腾了好一阵子才摸出几个有效的解决方案,分享给你试试:

1. 彻底清理Chrome残留进程

很多时候这个问题是因为前一次测试的Chrome/ChromeDriver进程没有完全退出,残留进程占用了端口或资源,导致新实例无法正常启动。你可以在测试的teardown阶段,先调用driver.quit(),再强制杀掉所有相关进程:

// 先正常关闭驱动
driver.quit();
// 强制杀死所有Chrome和ChromeDriver进程(包含子进程)
Runtime.getRuntime().exec("taskkill /F /IM chrome.exe /T");
Runtime.getRuntime().exec("taskkill /F /IM chromedriver.exe /T");

2. 优化Chrome启动参数

给Chrome添加几个稳定性相关的启动参数,减少资源竞争和潜在冲突:

ChromeOptions options = new ChromeOptions();
// 禁用共享内存限制,避免Windows下的资源不足问题
options.addArguments("--disable-dev-shm-usage");
// 禁用GPU加速,减少渲染层面的异常
options.addArguments("--disable-gpu");
// 禁用扩展程序,避免第三方扩展干扰
options.addArguments("--disable-extensions");
// 禁用弹窗拦截(根据测试需求可选)
options.addArguments("--disable-popup-blocking");
// 如果不需要可视化界面,无头模式通常更稳定
options.addArguments("--headless=new");

WebDriver driver = new ChromeDriver(options);

3. 延长超时时间

有时候是Chrome启动速度慢,默认超时时间不够导致报错。你可以延长ChromeDriver的启动超时和页面加载超时:

// 配置ChromeDriver服务的启动超时
ChromeDriverService service = new ChromeDriverService.Builder()
        .withTimeout(Duration.ofMinutes(2)) // 延长至2分钟
        .build();

ChromeOptions options = new ChromeOptions();
WebDriver driver = new ChromeDriver(service, options);

// 延长页面加载超时
driver.manage().timeouts().pageLoadTimeout(Duration.ofMinutes(2));

4. 检查系统资源

Windows系统资源不足(内存、CPU占用过高)也会导致Chrome间歇性启动失败:

  • 关闭测试机器上不必要的后台程序(比如杀毒软件的实时扫描、闲置的办公软件);
  • 减少并发测试的数量,避免资源耗尽;
  • 定期清理Chrome的临时缓存文件,路径为:C:\Users\<你的用户名>\AppData\Local\Google\Chrome\User Data\Default\Cache

5. 确保Chrome与ChromeDriver版本完全匹配

虽然你用了最新版本,但有时候最新版的ChromeDriver和Chrome可能存在兼容性小问题。你可以严格按照ChromeDriver的版本对应表,下载和当前Chrome版本完全匹配的驱动(比如Chrome 114.x对应ChromeDriver 114.x),版本匹配度比“最新版”更重要。


附你提供的异常详情:

org.openqa.selenium.WebDriverException: chrome not reachable
(Driver info: chromedriver=2.35.528161 (5b82f2d2aae0ca24b877009200ced9065a772e73),platform=Windows NT 6.1.7601 SP1 x86_64)
(WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 62.52 seconds
Build info: version: '2.52.0', revision: '4c2593cfc3689a7fcd7be52549167e5ccc93ad28', time: '2016-02-11 11:22:43'
System info: host: 'CORPMNA7158A', ip: '10.26.195.163', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_144'
Driver info: org.openqa.selenium.chrome.ChromeDriver

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

火山引擎 最新活动