如何解决最新ChromeDriver下的SessionNotCreatedException异常?
问题详情
我尝试使用Selenium Server Standalone运行自动化测试,虽已将chromedriver.exe更新至最新108版本,但仍抛出以下异常:
org.openqa.selenium.SessionNotCreatedException: session not created: This version of ChromeDriver only supports Chrome version 99
启动Selenium Grid Standalone时,系统显示:
Starting ChromeDriver 99.0.4844.51
报错相关代码片段
System.setProperty("webdriver.chrome.driver", "C:\\chromedriver.exe"); ChromeOptions options = new ChromeOptions(); options.addArguments("start-maximized"); driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), options);
当前使用的Selenium依赖版本
<dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>3.141.59</version> </dependency>
本地ChromeDriver版本验证
通过PowerShell执行命令:
PS C:> .\chromedriver.exe -v
返回结果:
ChromeDriver 108.0.5359.71 (1e0e3868ee06e91ad636a874420e3ca3ae3756ac-refs/branch-heads/5359@{#1016})
解决方法
指定Selenium Grid使用的ChromeDriver路径
本地ChromeDriver是108版本,但Grid启动的是自带的99版本,说明Grid没加载你更新的驱动。启动Grid时必须通过参数指定驱动路径,命令示例:java -jar selenium-server-standalone-xxx.jar -Dwebdriver.chrome.driver=C:\chromedriver.exe删除无效的本地驱动配置
代码里的System.setProperty("webdriver.chrome.driver", "...")是给本地WebDriver用的,你用的是RemoteWebDriver连接Grid,这行代码完全无效,直接删掉即可。升级Selenium依赖(推荐)
你当前用的Selenium 3.141.59版本老旧,对新版ChromeDriver的兼容性不足。建议升级到4.x版本,比如4.7.2,还能配合WebDriverManager自动管理驱动版本,不用手动下载更新。升级后的依赖配置:<dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>4.7.2</version> </dependency>
内容的提问来源于stack exchange,提问作者cagoscra
相关产品推荐
相关产品推荐

