使用Maven+Java的Selenium出现SLF4J类加载失败及SessionNotCreatedException求助
问题解决方案
一、SLF4J 加载失败问题
原因
你的项目依赖(比如Selenium)间接引入了SLF4J API,但缺少具体的日志实现绑定,导致抛出Failed to load class "org.slf4j.impl.StaticLoggerBinder"错误。
解决步骤
在pom.xml中添加任意一种SLF4J日志实现依赖即可:
- 简单调试用的实现:
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.36</version> <!-- 版本与项目中SLF4J API版本保持一致 --> </dependency>
- 生产环境常用的Logback实现:
<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.11</version> </dependency>
添加后重新构建项目,该错误即可消除。
二、Selenium SessionNotCreatedException 问题
常见原因及解决方法
1. Chrome浏览器与Chromedriver版本不匹配
- 查看Chrome版本:打开Chrome→设置→关于Chrome,获取版本号(如125.x.x.x)
- 下载对应版本的Chromedriver,确保版本号与Chrome完全对应
- 配置驱动:
- 方式一:将Chromedriver放入系统PATH环境变量指向的目录
- 方式二:代码中指定驱动路径:
System.setProperty("webdriver.chrome.driver", "你的Chromedriver绝对路径"); WebDriver driver = new ChromeDriver();
2. 驱动初始化方式过时(适用于Selenium 4.x+版本)
推荐使用WebDriverManager自动管理驱动,无需手动下载:
- 先在pom.xml添加依赖:
<dependency> <groupId>io.github.bonigarcia</groupId> <artifactId>webdrivermanager</artifactId> <version>5.6.3</version> </dependency>
- 代码中替换初始化逻辑:
WebDriverManager.chromedriver().setup(); WebDriver driver = new ChromeDriver();
3. Chrome浏览器启动异常
- 关闭所有Chrome进程后重新运行程序
- 检查是否有杀毒软件拦截Chrome或Chromedriver
- 尝试以管理员权限运行程序
内容的提问来源于stack exchange,提问作者Zarina Bakchieva
相关产品推荐
相关产品推荐

