Chrome升级至107后Selenium脚本执行失败求助
解决Chrome 107 + Selenium 卡在
driver.get()及"unable to receive message from renderer"问题 可能的原因及修复步骤
1. 添加Chrome启动参数适配渲染进程
Chrome 107对渲染进程的资源限制和通信机制有调整,添加以下启动参数可大概率解决问题:
--disable-gpu:禁用GPU加速,避免渲染进程与GPU驱动的兼容性冲突--no-sandbox:关闭沙箱模式(部分环境下沙箱会阻断渲染器与Driver的通信)--disable-dev-shm-usage:解决Linux系统下/dev/shm空间不足导致的渲染进程崩溃--remote-debugging-port=9222:强制开启远程调试端口,确保渲染器通信通道正常
Java示例代码:
ChromeOptions options = new ChromeOptions(); options.addArguments("--disable-gpu"); options.addArguments("--no-sandbox"); options.addArguments("--disable-dev-shm-usage"); options.addArguments("--remote-debugging-port=9222"); WebDriver driver = new ChromeDriver(options);
2. 降级JDK至LTS版本
JDK 19属于非稳定的前沿版本,和Chrome 107、Selenium的兼容性存在适配缺口。建议降级到JDK 11或JDK 17(长期支持版本),多数用户反馈切换后渲染通信异常问题消失。
3. 确认Selenium版本完全适配
即使更新了pom依赖,也要明确指定适配Chrome 107的Selenium版本(建议4.5.0及以上),避免依赖自动引入的版本存在兼容性问题:
<dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>4.5.3</version> </dependency>
4. 清理Chrome旧配置缓存
Chrome升级后残留的旧用户配置可能导致渲染进程异常,可手动清理Chrome用户数据目录(Windows:C:\Users\<用户名>\AppData\Local\Google\Chrome\User Data;Linux:~/.config/google-chrome),或启动时指定临时数据目录:
options.addArguments("--user-data-dir=/tmp/chrome_temp");
5. 检查系统资源状态
系统内存不足、CPU负载过高会导致Chrome渲染进程无法正常启动或通信。关闭后台占用资源的程序,确保至少4GB可用内存供Chrome和Selenium运行。
内容的提问来源于stack exchange,提问作者Ankita Khabale
相关产品推荐
相关产品推荐

