Chrome升级至109版本后Selenium无法创建新会话问题求助
问题分析与解决方案
你的测试无法运行的核心原因是代码配置顺序错误,且混用了手动指定ChromeDriver路径和WebDriverManager,和ChromeDriver版本稳定性无关。
问题点拆解
- 你先手动通过
System.setProperty指定了ChromeDriver路径,直接创建ChromeDriver实例后,才调用WebDriverManager.chromedriver().setup()——此时WebDriverManager的配置完全没生效,手动指定的路径可能和当前Chrome版本不匹配(哪怕你下载了最新驱动,顺序错误也会引发冲突)。 - WebDriverManager的作用就是自动匹配Chrome版本并管理驱动,手动设置路径会和它的自动管理逻辑冲突。
修复步骤
1. 调整代码结构
移除手动的System.setProperty配置,先初始化WebDriverManager,再创建ChromeDriver实例:
public WebDriver driver; @BeforeMethod public void popUp(){ // 先让WebDriverManager自动匹配并配置ChromeDriver WebDriverManager.chromedriver().setup(); // 创建ChromeDriver实例 driver = new ChromeDriver(); // 最大化窗口 driver.manage().window().maximize(); }
2. 确认依赖正确性
如果你用Maven,确保webdrivermanager依赖已正确引入(版本建议和Selenium版本适配,比如对应Selenium 4.7.2可使用WebDriverManager 5.3.0+):
<dependency> <groupId>io.github.bonigarcia</groupId> <artifactId>webdrivermanager</artifactId> <version>5.3.3</version> <scope>test</scope> </dependency>
3. 关于log4j警告
报错里的log4j警告是次要问题,不会导致测试失败。若要消除警告,可在项目资源目录添加log4j.properties配置文件,示例内容:
log4j.rootLogger=INFO, console log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
额外验证
如果修复后仍有问题,可通过以下方式确认版本匹配:
- 打开Chrome,在地址栏输入
chrome://version查看Chrome版本号 - 确认WebDriverManager自动下载的ChromeDriver版本和Chrome主版本号完全一致(比如Chrome 109.x对应ChromeDriver 109.x)
内容的提问来源于stack exchange,提问作者user377810
相关产品推荐
相关产品推荐

