Chrome v111与Selenium ChromeDriver无法建立WebSocket连接问题求助
解决Chrome v111 + Selenium 无法建立WebSocket连接的问题
核心原因
Chrome浏览器版本与ChromeDriver版本不匹配,或是所用Selenium版本对新版Chrome兼容性不足,导致WebDriver与浏览器之间的WebSocket通信链路无法建立。
具体解决步骤
匹配ChromeDriver与Chrome版本
下载与你的Chrome v111.0.5563.65完全对应的ChromeDriver版本。若使用Selenium 4.6及以上版本,可依赖其内置的Driver自动管理功能,无需手动设置webdriver.chrome.driver系统属性;若手动管理驱动,需将下载好的chromedriver.exe放入项目指定路径,取消代码中System.setProperty的注释并确保路径正确。升级Selenium版本
旧版Selenium对Chrome 111支持不足,建议升级至4.8.0及以上版本。以Maven为例,更新依赖:<dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>4.8.3</version> </dependency>调整ChromeOptions配置(针对无头模式)
Chrome 111的无头模式有版本迭代,建议改用新版参数提升稳定性:ChromeOptions options = new ChromeOptions(); options.addArguments("--headless=new"); // 替代旧的setHeadless(true) options.addArguments("--disable-gpu"); options.addArguments("--no-sandbox"); driver = new ChromeDriver(options);验证环境配置
命令行运行chromedriver.exe --version确认驱动版本与Chrome一致;清理Eclipse项目并重新构建,排查依赖冲突问题。
调整后的测试代码示例
package com.testng.library_Files; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import org.testng.annotations.Test; public class one { WebDriver driver=null; @Test(priority = 1) public void DoSetup() { // Selenium <4.6时取消注释并设置正确路径 // System.setProperty("webdriver.chrome.driver", "./src/main/java/drivers/chromedriver.exe"); ChromeOptions options= new ChromeOptions(); options.addArguments("--headless=new"); options.addArguments("--disable-gpu"); driver= new ChromeDriver(options); } @Test(priority = 2) public void LaunchURL() { driver.get("https://www.google.com"); System.out.println("页面标题:" + driver.getTitle()); } }
内容的提问来源于stack exchange,提问作者JBM
相关产品推荐
相关产品推荐

