【问题标题】:java.lang.NoClassDefFoundError: com/google/common/base/Functionjava.lang.NoClassDefFoundError: com/google/common/base/Function
【发布时间】:2018-01-18 21:58:45
【问题描述】:

我是 Selenium 网络驱动程序的初学者。我在调用驱动程序时遇到了一些问题。我附上程序和错误供您参考。 1)我已经尝试过使用独立的 jar 和单独的 jar 文件 2) 环境变量中的路径也设置正确。

我正在使用 JDK 1.8 和 eclipse neon 来编写代码。

如果可以,请帮助我..尝试了互联网上提到的很多方法。仍然无法确定确切的问题。当我创建一个 Testng 示例程序时,这个错误开始出现。

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
public class Sample22 {
public static void main(String[] args) {  System.setProperty("webdriver.gecko.driver",//E://share//geckodriver.exe");
        DesiredCapabilities capabilities = DesiredCapabilities.firefox();
        capabilities.setCapability("marionette", true);
        //WebDriver driver1 = new MarionetteDriver(capabilities); 
        WebDriver driver1 = new FirefoxDriver();
    }

}

错误是

线程“main”中的异常 java.lang.NoClassDefFoundError: com/google/common/base/Function at Sample22.main(Sample22.java:12) 原因:java.lang.ClassNotFoundException: com.google.common。 base.Function at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 1 more

【问题讨论】:

  • “线程“main”中的异常 java.lang.NoClassDefFoundError: com/google/common/base/Function at Sample22.main(Sample22.java:12) 原因:java.lang.ClassNotFoundException: com.google.common.base.Function at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 1 更多"
  • 我尝试了线程中的所有方法..但它还没有解决
  • 这些 jars 是否在您的类路径中正确设置?
  • 上传屏幕截图可能会有所帮助,您的项目偏好的类路径
  • 您的 POM 参考资料以及您使用的是哪个版本的 Firefox?

标签: java eclipse selenium


【解决方案1】:

您需要在代码中处理很多事情,如下所示:

  1. 当您的代码位于 Java 中时,System.setProperty 行要求 value 字段包含单个正斜杠 / 或转义的反斜杠 \\
  2. value 参数需要在双引号 "..." 内作为 String 传递
  3. 如果您使用的是DesiredCapabilities 类,请记住在启动WebDriver 实例时将DesiredCapabilities 类的实例作为参数传递。
  4. 如果您使用的是import org.openqa.selenium.remote.*;,请确保您已将最新的selenium-server-standalone.jar添加为External Jar
  5. 启动浏览器会话后,导航到某个 URL 以确认会话是否已成功建立。
  6. 您的最终代码块将如下所示:

    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.firefox.FirefoxDriver;
    import org.openqa.selenium.remote.DesiredCapabilities;
    
    public class Sample22 
    {
        public static void main(String[] args) 
        {  
            System.setProperty("webdriver.gecko.driver", "E:\\share\\geckodriver.exe");
            DesiredCapabilities capabilities = DesiredCapabilities.firefox();
            capabilities.setCapability("marionette", true);
            WebDriver driver = new FirefoxDriver(capabilities); 
            driver.navigate().to("https://google.com");
        }
    }
    

【讨论】:

  • @LipsonTA 检查我更新的答案,让我知道状态。
猜你喜欢
  • 2018-05-26
  • 1970-01-01
  • 2023-03-05
  • 2012-04-17
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
相关资源
最近更新 更多