eclipse - java.lang.NoClassDefFoundError: org/openqa/selenium/remote/service/DriverService$Builder
问题描述
我正在尝试在 Eclipse 中为 Selenium 创建一个 TestNg Maven 项目。这是我的代码:
package Edureka_Case_Study_8th.Edureka_Case_Study_8th;
import org.testng.annotations.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class CaseStudy2 {
@Test
public void basicSetup() {
System.setProperty("webdriver.gecko.driver", "C:\\Users\\Sitesh\\Selenium\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.get("https://www.flipkart.com/ ");
}
}
当我尝试运行它时,我收到以下错误:
[RemoteTestNG] detected TestNG version 7.3.0
FAILED: basicSetup
java.lang.NoClassDefFoundError: org/openqa/selenium/remote/service/DriverService$Builder
at Edureka_Case_Study_8th.Edureka_Case_Study_8th.CaseStudy2.basicSetup(CaseStudy2.java:11)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:132)
at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:599)
at org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:174)
at org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46)
at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:822)
at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:147)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128)
at java.util.ArrayList.forEach(Unknown Source)
at org.testng.TestRunner.privateRun(TestRunner.java:764)
at org.testng.TestRunner.run(TestRunner.java:585)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:384)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:378)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:337)
at org.testng.SuiteRunner.run(SuiteRunner.java:286)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1218)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1140)
at org.testng.TestNG.runSuites(TestNG.java:1069)
at org.testng.TestNG.run(TestNG.java:1037)
at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
Caused by: java.lang.ClassNotFoundException:
org.openqa.selenium.remote.service.DriverService$Builder
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 29 more
有人可以提出建议/解决方案吗?
使用的工件:Eclipse - 版本:2020-06 (4.16.0),Selenium - v3.141.59
解决方案
它看起来像硒库的问题。请添加所有硒罐。关注以下:
从https://www.selenium.dev/downloads/下载 Selenium Client & WebDriver Language Bindings for Java(确保根据您的系统配置下载)
解压缩文件。
打开您的项目>右键单击>构建路径>配置构建路径>库>添加外部罐子
选择上面解压缩文件夹中的所有 jars(确保还添加了库)。
还要确保安装了 Java,并且在执行环境下指向了 JDK 的路径。
- 转到构建路径 > 配置构建路径 > 库。
- 打开 JRE 系统库
- 如果默认选择的环境不指向 JDK。选择备用 JRE。
- 单击 Installed JREs 并浏览到 JDK 文件夹选择。
注意:使用相同的代码和上面提到的设置我可以运行你的脚本。
推荐阅读
- angular - 使用 Identity Server 和 Openid 的 SSO
- jsf-1.2 - JSF 1.2 热重载
- c++ - C++编译过程:模板的地方
- java - 我试图让我的程序继续要求输入并回答该输入
- python - Pandas:使用 map 函数在另一个 df 中查找一个值
- python - GAMS 和 Python:如何在循环运行 GamsJob 时重写输出 gdx 文件
- mysql - 如何使用lua连接到主机上的MYSQL
- ios - 如何在 ios swift3 中更改特定的单元格颜色
- mysql - 如何使用 mysql 数据库列之一作为 VB.NET 的变量
- javascript - 从引导导航下拉菜单中选择下拉菜单以进行悬停