Eclipse中Selenium JAR文件未识别,测试类无法运行求助
问题解决:Selenium运行报NoClassDefFoundError: com/google/common/io/ByteStreams
问题重现
测试代码:
package seleniumTest; import org.openqa.selenium.chrome.ChromeDriver; public class Test1 { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "C:\\Documents\\browserdrivers\\chromedriver.exe"); ChromeDriver driver = new ChromeDriver(); driver.get("https://www.google.com"); } }
运行报错:
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/io/ByteStreams at org.seleniumhq.selenium.remote_driver/org.openqa.selenium.remote.service.DriverService$Builder.parseLogOutput(DriverService.java:472) at org.seleniumhq.selenium.chrome_driver/org.openqa.selenium.chrome.ChromeDriverService$Builder.loadSystemProperties(ChromeDriverService.java:257) at org.seleniumhq.selenium.remote_driver/org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:495) at org.seleniumhq.selenium.chrome_driver/org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:137) at org.seleniumhq.selenium.chrome_driver/org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:51) at seleniumTest/seleniumTest.Test1.main(Test1.java:8) Caused by: java.lang.ClassNotFoundException: com.google.common.io.ByteStreams 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) ... 6 more
原因分析
该错误是因为项目缺少**Guava(Google核心Java工具库)**依赖,Selenium的远程服务模块依赖该库的ByteStreams类,手动添加Selenium JAR时容易遗漏这个依赖包。
解决方案
1. 手动补充Guava依赖包
- 打开你下载的Selenium压缩包,进入
libs目录,找到guava-xxx.jar(xxx为对应版本号) - 将该JAR包添加到项目的构建路径中,操作和添加Selenium核心JAR一致
2. 改用Maven/Gradle管理依赖(推荐)
用依赖管理工具可自动处理所有依赖关系,避免手动遗漏:
Maven(pom.xml)
<dependencies> <!-- Selenium Java核心依赖 --> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>4.15.0</version> <!-- 建议使用最新稳定版 --> </dependency> </dependencies>
Gradle(build.gradle)
dependencies { implementation 'org.seleniumhq.selenium:selenium-java:4.15.0' }
3. 验证ChromeDriver与浏览器版本匹配
确保ChromeDriver版本和本地Chrome浏览器版本一致:
- 打开Chrome,通过
设置 > 关于Chrome查看版本 - 下载对应版本的ChromeDriver,替换现有驱动文件
内容的提问来源于stack exchange,提问作者proxyninoxy
相关产品推荐
相关产品推荐

