Java-Selenium执行driver.quit()时遇Connection Reset错误求助
解决Java-Selenium执行
driver.quit()时的Connection reset错误 可能的原因及对应修复方案
1. ChromeDriver与Chrome版本的微小版本差异
虽然主版本匹配,但Chrome版本111.0.5563.65和ChromeDriver版本111.0.5563.64的微小版本号不一致,可能导致通信异常。
- 修复:下载与Chrome完全匹配版本的ChromeDriver(111.0.5563.65)替换当前驱动。
2. Selenium 4.8.x的WebSocket连接处理缺陷
Selenium 4.x依赖WebSocket与ChromeDriver通信,4.8.x版本在quit()时可能存在未正确关闭连接的问题。
- 修复:升级至Selenium 4.9.0及以上版本(后续版本修复了多个WebSocket相关bug);若暂时无法升级,可尝试在
quit()前先执行close():
try { driver.close(); } catch (Exception e) { // 忽略close操作的异常 } driver.quit();
3. JDK版本兼容性问题
报错堆栈显示使用Java base模块,部分早期JDK 17版本与Selenium依赖的Netty组件存在Socket通信兼容性问题。
- 修复:切换至JDK 11或稳定版JDK 17(如17.0.6及以上版本)。
4. Chrome后台进程残留
ChromeDriver退出时可能无法彻底清理Chrome进程,导致Socket连接被强制重置。
- 修复:在
driver.quit()后手动清理相关进程:- Windows:执行命令
taskkill /F /IM chrome.exe /IM chromedriver.exe - Linux/macOS:执行命令
pkill -f chrome && pkill -f chromedriver
- Windows:执行命令
5. 代理或防火墙干扰
环境中的代理、防火墙可能中断ChromeDriver与浏览器的本地WebSocket连接。
- 修复:关闭代理或防火墙,或将ChromeDriver、Chrome加入防火墙白名单,确保本地通信不受限制。
内容的提问来源于stack exchange,提问作者Tes Nt
相关产品推荐
相关产品推荐

