Chrome 124更新后Selenium-Java并发多测试致电脑崩溃冻结
解决Chrome v124与Selenium 4.18.1兼容导致的测试冻结崩溃问题
问题场景
- 环境:JDK11、IntelliJ+Maven、selenium-java 4.18.1
- 触发情况:Chrome升级至v124后,运行64个测试的XML文件时出现电脑冻结、崩溃;仅运行8-12个测试可正常完成
- 控制台输出:
- 错误:
timeout: Timed out receiving message from renderer - 错误:
WARNING: Failed to shutdown Driver Command Executor - 版本不匹配警告:
WARNING: Unable to find an exact match for CDP version 124, returning the closest version; found: 122; Please update to a Selenium version that supports CDP version 124
- 错误:
解决方案
1. 临时降级Chrome版本
回退到Chrome v123版本(与Selenium 4.18.1支持的CDP版本兼容),避免因CDP版本不匹配导致的渲染器通信异常。
2. 优化测试资源管理
大量测试崩溃的核心原因是资源泄漏或占用过高,可通过以下方式优化:
- 确保测试后彻底销毁浏览器实例:使用
driver.quit()而非driver.close(),保证所有Chrome相关进程被终止:@AfterMethod public void tearDown() { if (driver != null) { driver.quit(); } } - 限制测试并发数:调整Maven Surefire/Failsafe插件配置,避免同时启动过多浏览器实例耗尽系统资源:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.2.5</version> <configuration> <forkCount>2</forkCount> <reuseForks>false</reuseForks> </configuration> </plugin> - 增加JVM内存:在IntelliJ运行配置中添加VM参数:
-Xmx2048m -XX:MaxMetaspaceSize=512m,提升测试执行的内存上限。
3. 强制适配ChromeDriver版本
手动指定与Chrome v124匹配的ChromeDriver版本,忽略Selenium的版本警告(部分场景可正常运行):
System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver-124"); ChromeOptions options = new ChromeOptions(); WebDriver driver = new ChromeDriver(options);
4. 等待Selenium官方更新
待Selenium发布支持CDP 124的正式版本后,直接升级selenium-java依赖,彻底解决版本兼容问题。
内容的提问来源于stack exchange,提问作者wilyhawk
相关产品推荐
相关产品推荐

