Selenium Webdriver+;Java-Eclipse:Java.lang.NoClassDefFoundError

Selenium Webdriver+;Java-Eclipse:Java.lang.NoClassDefFoundError,java,eclipse,selenium-webdriver,automation,Java,Eclipse,Selenium Webdriver,Automation,我从这里安装了JDK: (此版本适用于windows x64:Java SE开发工具包8u151) 我从这里下载了eclipse: (Windows 64位) 我在eclipse中打开了一个新项目:文件->新建->Java项目 然后我从这里下载了Selenium Java JAR: --->java语言 然后在eclipse中单击我的项目->属性->Java构建路径->库选项卡->添加外部JAR…->我进入“SeleniumDrivers\Java”库(在那里我保存了我下载的所有JAR)->我检

我从这里安装了JDK: (此版本适用于windows x64:Java SE开发工具包8u151)

我从这里下载了eclipse: (Windows 64位)

我在eclipse中打开了一个新项目:文件->新建->Java项目

然后我从这里下载了Selenium Java JAR: --->java语言

然后在eclipse中单击我的项目->属性->Java构建路径->库选项卡->添加外部JAR…->我进入“SeleniumDrivers\Java”库(在那里我保存了我下载的所有JAR)->我检查了那里的所有文件:

我点击“ok”并在eclipse中创建了一个新类

然后我从这里下载了chromedriver:

我将其解压缩并保存在这里:C:\Selenium\Drivers

这是我的剧本:

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

public class MainClass {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("hi there\n");

        System.setProperty("webdriver.chrome.driver", 
        "C:/Selenium/Drivers/chromedriver.exe");
        WebDriver driver = new ChromeDriver();
        driver.get("https://www.facebook.com");
    }

}
正如你所看到的,这是一个非常基本的脚本,可以打开chrome浏览器并导航到facebook

我运行此脚本并出现以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/config/RegistryBuilder
    at org.openqa.selenium.remote.internal.HttpClientFactory.getClientConnectionManager(HttpClientFactory.java:69)
    at org.openqa.selenium.remote.internal.HttpClientFactory.<init>(HttpClientFactory.java:57)
    at org.openqa.selenium.remote.internal.HttpClientFactory.<init>(HttpClientFactory.java:60)
    at org.openqa.selenium.remote.internal.ApacheHttpClient$Factory.getDefaultHttpClientFactory(ApacheHttpClient.java:242)
    at org.openqa.selenium.remote.internal.ApacheHttpClient$Factory.<init>(ApacheHttpClient.java:219)
    at org.openqa.selenium.remote.HttpCommandExecutor.getDefaultClientFactory(HttpCommandExecutor.java:93)
    at org.openqa.selenium.remote.HttpCommandExecutor.<init>(HttpCommandExecutor.java:72)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.<init>(DriverCommandExecutor.java:63)
    at org.openqa.selenium.chrome.ChromeDriverCommandExecutor.<init>(ChromeDriverCommandExecutor.java:36)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:181)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:168)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:123)
    at MainClass.main(MainClass.java:11)
Caused by: java.lang.ClassNotFoundException: org.apache.http.config.RegistryBuilder
    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)
    ... 13 more
线程“main”java.lang.NoClassDefFoundError中的异常:org/apache/http/config/RegistryBuilder 位于org.openqa.selenium.remote.internal.HttpClientFactory.getClientConnectionManager(HttpClientFactory.java:69) 位于org.openqa.selenium.remote.internal.HttpClientFactory.(HttpClientFactory.java:57) 位于org.openqa.selenium.remote.internal.HttpClientFactory.(HttpClientFactory.java:60) 位于org.openqa.selenium.remote.internal.ApacheHttpClient$Factory.getDefaultHttpClientFactory(ApacheHttpClient.java:242) 位于org.openqa.selenium.remote.internal.ApacheHttpClient$Factory(ApacheHttpClient.java:219) 位于org.openqa.selenium.remote.HttpCommandExecutor.getDefaultClientFactory(HttpCommandExecutor.java:93) 位于org.openqa.selenium.remote.HttpCommandExecutor。(HttpCommandExecutor.java:72) 位于org.openqa.selenium.remote.service.DriverCommandExecutor.(DriverCommandExecutor.java:63) 位于org.openqa.selenium.chrome.ChromeDriverCommandExecutor。(ChromeDriverCommandExecutor.java:36) 位于org.openqa.selenium.chrome.ChromeDriver(ChromeDriver.java:181) 位于org.openqa.selenium.chrome.ChromeDriver(ChromeDriver.java:168) 位于org.openqa.selenium.chrome.ChromeDriver(ChromeDriver.java:123) 在MainClass.main(MainClass.java:11) 原因:java.lang.ClassNotFoundException:org.apache.http.config.RegistryBuilder 位于java.net.URLClassLoader.findClass(未知源) 位于java.lang.ClassLoader.loadClass(未知源) 位于sun.misc.Launcher$AppClassLoader.loadClass(未知源) 位于java.lang.ClassLoader.loadClass(未知源) ... 还有13个 我不知道如何解决这个问题,你能帮我解决一下,这样我就可以运行我的基本脚本了吗?

似乎是最新的(
v3.7
)Selenium Java zip文件在lib文件夹中包含了较少的jar
v3.6
包含10个lib jar,但
v3.7
仅包含7个jar

导致op出现所有问题的缺少的jar是“httpcore-4.4.6.jar”。我不确定移除罐子是否是有意的。也许
chromedriver
已经赶上了
seleniumjava3.7
看到了这一点

我使用Selenium Java 3.6的平均时间
。不要忘记添加/lib文件夹

似乎是最新的(
v3.7
)Selenium Java zip文件在lib文件夹中包含了较少的jar
v3.6
包含10个lib jar,但
v3.7
仅包含7个jar

导致op出现所有问题的缺少的jar是“httpcore-4.4.6.jar”。我不确定移除罐子是否是有意的。也许
chromedriver
已经赶上了
seleniumjava3.7
看到了这一点

我使用Selenium Java 3.6的平均时间
。不要忘记添加/lib文件夹


java.lang.NoClassDefFoundError
JRE找不到类时被观察到

简单地说,所需的
导入
jar
文件不可用。从您共享的快照中可以明显看出,您已经尝试添加与Java客户机相关的JAR

在这种情况下,您需要遵循以下步骤:

  • 删除所有引用先前版本的Selenium单机版服务器和Selenium Java客户端的JAR
  • 仅导入selenium-server-standalone-3.7.0
  • 在项目菜单内的IDE中,选择选项“自动生成”,并对所有项目执行
    Clean
    选项
  • 执行测试

  • java.lang.NoClassDefFoundError
    在JRE
    找不到类时出现

    简单地说,所需的
    导入
    jar
    文件不可用。从您共享的快照中可以明显看出,您已经尝试添加与Java客户机相关的JAR

    在这种情况下,您需要遵循以下步骤:

  • 删除所有引用先前版本的Selenium单机版服务器和Selenium Java客户端的JAR
  • 仅导入selenium-server-standalone-3.7.0
  • 在项目菜单内的IDE中,选择选项“自动生成”,并对所有项目执行
    Clean
    选项
  • 执行测试

  • 我添加了3.6版中丢失的三个罐子,并修复了所有问题。

    我添加了3.6版中缺失的三个罐子,并修复了所有问题。

    将appium java客户端更新为7.3.0,将selenium java更新为3.141.59,这解决了我的问题,希望它有所帮助。

    将appium java客户端更新为7.3.0,将selenium java更新为3.141.59,这解决了我的问题,希望它有所帮助。

    我也面临同样的问题。对我来说,它没有找到WebDriver。这似乎是在我将库导入到类路径以外的位置时发生的。然后我打开了一个新项目,转到属性>Java构建路径>库。这个提姆