Selenium报错org.openqa.selenium.remote.http.ConnectionFailedException求助
解决Selenium无法建立WebSocket连接的排查方案
1. 核对ChromeDriver与Chrome版本一致性
这是触发该报错的最常见原因——ChromeDriver版本必须和本地安装的Chrome浏览器主版本完全匹配。比如Chrome是118.x系列,ChromeDriver也得用118.x的对应版本。
- 查看Chrome版本:打开Chrome后访问
chrome://settings/help - 下载对应版本的ChromeDriver,确保主版本号完全对齐
2. 补充ChromeOptions参数
除了你已添加的参数,试试追加这些配置:
options.addArguments("--disable-web-security"); options.addArguments("--allow-running-insecure-content"); options.addArguments("--disable-gpu"); options.addArguments("--disable-features=VizDisplayCompositor"); options.addArguments("--remote-debugging-port=9222"); // 指定固定调试端口,避免端口冲突
注意初始化Driver时要正确传入配置好的Options对象:
ChromeDriver driver = new ChromeDriver(options);
3. 排查网络与代理环境
- 如果你的网络需要代理,必须在ChromeOptions中配置对应代理信息:
Proxy proxy = new Proxy(); proxy.setHttpProxy("你的代理地址:端口"); proxy.setSslProxy("你的代理地址:端口"); options.setProxy(proxy);
- 临时关闭本地防火墙、杀毒软件,这类工具可能会拦截Selenium与浏览器之间的WebSocket连接
4. 升级Selenium依赖版本
旧版Selenium和新版Chrome存在兼容性问题的概率很高,直接升级到最新稳定版。比如Maven项目可以更新依赖:
<dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>4.15.0</version> <!-- 替换为当前最新稳定版本 --> </dependency>
5. 手动启动ChromeDriverService
自动启动Driver时偶尔会出现进程异常,试试手动启动服务:
ChromeDriverService service = new ChromeDriverService.Builder() .usingDriverExecutable(new File("你的ChromeDriver文件路径")) .usingAnyFreePort() .build(); service.start(); ChromeDriver driver = new ChromeDriver(service, options);
6. 验证目标网站的WebSocket可用性
先用手动方式打开Chrome访问目标网站,按F12打开开发者工具,切换到Network -> WS标签,观察是否能正常建立WebSocket连接。如果手动访问也失败,那问题可能出在目标网站本身,而非你的代码。
内容的提问来源于stack exchange,提问作者Mishel Rossin
相关产品推荐
相关产品推荐

