Selenium Java 4.1.3 java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriver

Selenium Java 4.1.3 java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriver

我遵循了本教程 https://www.javatpoint.com/selenium-webdriver-installation 但 WebDriver 有问题 class :

Error: Unable to initialize main class First
Caused by: java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriver

我已经按照教程中所示放置了依赖项。如果我相信 Selnium API 的文档,WebDriver class 出现在 4.1.3 版本中。

我不知道是不是因为4.1.3版本没有client-combiden-3.13.0.jar文件之类的...所以如果你有解决方案,我在。

我在 Windows 10,我使用 Eclipse IDE 版本 2021-06 (4.20.0)。

这是我的 class 第一:

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

public class First {  
  
    public static void main(String[] args) {

    // declaration and instantiation of objects/variables  
    System.setProperty("webdriver.chrome.driver", "/root/drivers/chromedriver.exe");  
    WebDriver driver = new ChromeDriver();  

    // Launch website
    driver.navigate().to("http://www.google.com/");  

    // Click on the search text box and send value  
    driver.findElement(By.id("lst-ib")).sendKeys("javatpoint tutorials");  
 
    // Click on the search button  
    driver.findElement(By.name("btnK")).click();  

    }
}

感谢您的帮助!

您可能只添加了以下 JARS:

  • selenium-api-4.1.3.jar
  • selenium-chrome-driver-4.1.3.jar
  • (全部在'lib')

ChromeDriver 继承自 ChromiumDriver,后者又继承自 RemoteWebDriver,后者最终实现了 WebDriver。由于您没有提供这些链接,编译器无法知道 ChromeDriver 实现了 WebDriver.

您至少需要添加这些外部 JARS:

  • selenium-api-4.1.3
  • selenium-remote-driver-4.1.3
  • selenium-chromium-driver-4.1.3
  • selenium-chrome-driver-4.1.3
  • (全部在文件夹'lib'中)

注意:您可能还想添加 xxx-sources.jar。这不是必需的,但您可以将它附加到已编译的 类 以查看实际代码,而不是 eclipse 在“Class 文件编辑器”中提供的奇怪表示。

您还可以添加下载的 ZIP 中的所有 jar 文件,以防止将来出现类似错误。或者我的首选方式:查看 Maven (https://www.vogella.com/tutorials/EclipseMaven/article.html)。它为您管理依赖项,非常易于使用,您可以更轻松地更新您的库。您似乎是一名新程序员,我知道了解所有这些工具可能看起来令人生畏,但 Maven 会让您的生活变得更加轻松。

所以对于那些有同样问题的人:

我在 classpath 中添加了来自 Java Selenium zip 文件的所有外部 JAR,而不是在 modulepath.[=13= 中]

Picture of Java Build Path to add dependencies

在那之后,我得到了错误:SLF4J:Failed to load class "org.slf4j.impl.StaticLoggerBinder

为了解决这个错误,我检查了我是否有 slf4j-api-1.7.36.jar 文件并添加了 slf4j -简单-1.7.36.jar。我从 https://repo1.maven.org/maven2/org/slf4j/slf4j-simple/1.7.36/slf4j-simple-1.7.36.jar

下载

最后,我的最后一个问题是我使用的驱动程序,与浏览器版本相比,它不是正确的版本。