You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何我的Selenium自动化脚本运行时出现类找不到等报错?

Selenium ChromeDriver运行报错解决方案

运行代码

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class Practice {
    public static void main(String[] args) {
   
        System.setProperty("webdriver.chrome.driver", "E:\\ChromeDriver\\chromedriver.exe");
   
        WebDriver driver = new ChromeDriver();

        // Navigate to google.com
        driver.get("https://www.google.com/");
     }
}

报错信息

SLF4J: 无法加载类“org.slf4j.impl.StaticLoggerBinder”。
SLF4J: 默认使用无操作(NOP)日志记录实现
SLF4J: 详情请查看相关文档。
ERROR StatusLogger Log4j2找不到日志实现,请将log4j-core添加到类路径中。使用SimpleLogger将日志输出到控制台...
Exception in thread "main" java.lang.NoClassDefFoundError: org/reactivestreams/Publisher
at org.asynchttpclient.netty.channel.ChannelManager.configureBootstraps(ChannelManager.java:212)
at org.asynchttpclient.DefaultAsyncHttpClient.(DefaultAsyncHttpClient.java:94)
at org.asynchttpclient.Dsl.asyncHttpClient(Dsl.java:32)
at org.openqa.selenium.remote.http.netty.NettyClient.createHttpClient(NettyClient.java:94)
at org.openqa.selenium.remote.http.netty.NettyClient.(NettyClient.java:47)
at org.openqa.selenium.remote.http.netty.NettyClient$Factory.createClient(NettyClient.java:135)
at org.openqa.selenium.remote.HttpCommandExecutor.(HttpCommandExecutor.java:116)
at org.openqa.selenium.remote.HttpCommandExecutor.(HttpCommandExecutor.java:94)
at org.openqa.selenium.remote.service.DriverCommandExecutor.(DriverCommandExecutor.java:88)
at org.openqa.selenium.chromium.ChromiumDriverCommandExecutor.(ChromiumDriverCommandExecutor.java:40)
at org.openqa.selenium.chrome.ChromeDriver$ChromeDriverCommandExecutor.(ChromeDriver.java:111)
at org.openqa.selenium.chrome.ChromeDriver.generateExecutor(ChromeDriver.java:101)
at org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:88)
at org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:84)
at org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:52)
at script.Practice.main(Practice.java:12)
Caused by: java.lang.ClassNotFoundException: org.reactivestreams/Publisher
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 16 more

问题原因

核心是项目缺少必要的依赖包:

  1. 缺失Reactive Streams的org.reactivestreams.Publisher类,导致AsyncHttpClient初始化失败,这是引发致命异常的直接原因
  2. 日志组件(SLF4J、Log4j2)依赖不完整,引发警告但不影响核心功能

解决步骤

方法1:用Maven/Gradle管理依赖(推荐)

Maven(pom.xml)

添加以下依赖,注意替换selenium-java的版本为当前最新稳定版(比如4.15.0):

<!-- Selenium核心依赖 -->
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.15.0</version>
</dependency>

<!-- 解决Reactive Streams缺失问题 -->
<dependency>
    <groupId>org.reactivestreams</groupId>
    <artifactId>reactive-streams</artifactId>
    <version>1.0.4</version>
</dependency>

<!-- 消除日志警告(可选) -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>2.0.7</version>
    <scope>runtime</scope>
</dependency>

Gradle(build.gradle)

dependencies {
    implementation 'org.seleniumhq.selenium:selenium-java:4.15.0'
    implementation 'org.reactivestreams:reactive-streams:1.0.4'
    runtimeOnly 'org.slf4j:slf4j-simple:2.0.7'
}

方法2:手动添加JAR包

如果不用构建工具,直接下载以下JAR包放到项目类路径:

  • Selenium Java核心包(官网下载对应版本)
  • reactive-streams-1.0.4.jar
  • slf4j-simple-2.0.7.jar(可选,消除日志警告)

额外注意事项

  • 版本匹配:ChromeDriver版本必须和本地Chrome浏览器版本完全一致,版本不兼容会引发各种异常
  • 简化驱动管理:从Selenium 4.x开始,推荐用WebDriverManager自动管理驱动,替代手动设置路径,避免路径错误:
    import io.github.bonigarcia.wdm.WebDriverManager;
    
    public class Practice {
        public static void main(String[] args) {
            WebDriverManager.chromedriver().setup();
            WebDriver driver = new ChromeDriver();
            driver.get("https://www.google.com/");
        }
    }
    
    使用这个需要添加webdrivermanager依赖(Maven/Gradle均可)

内容的提问来源于stack exchange,提问作者Laxmi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 14:55:07