首页 > 解决方案 > 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

标签: eclipsemavenselenium-webdrivertestng

解决方案


它看起来像硒库的问题。请添加所有硒罐。关注以下:

  1. 从https://www.selenium.dev/downloads/下载 Selenium Client & WebDriver Language Bindings for Java(确保根据您的系统配置下载)

  2. 解压缩文件。

  3. 打开您的项目>右键单击>构建路径>配置构建路径>库>添加外部罐子

  4. 选择上面解压缩文件夹中的所有 jars(确保还添加了库)。

还要确保安装了 Java,并且在执行环境下指向了 JDK 的路径。

  1. 转到构建路径 > 配置构建路径 > 库。
  2. 打开 JRE 系统库
  3. 如果默认选择的环境不指向 JDK。选择备用 JRE。
  4. 单击 Installed JREs 并浏览到 JDK 文件夹选择。

注意:使用相同的代码和上面提到的设置我可以运行你的脚本。


推荐阅读