在线程" main"中获得异常java.lang.NoClassDefFoundError:com / google / common / base / Function

时间:2017-03-18 18:04:24

标签: java eclipse selenium-webdriver

好的我正在使用
日食霓虹灯 客户联合3.1.0-nodeps.jar for firefox-setup 39.0

这是我的代码

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class T1 {

    public static void main(String[] args){


    WebDriver driver = new FirefoxDriver();
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);


    driver.navigate().to("https://www.orbitz.com/");

    driver.manage().window().maximize();

    driver.findElement(By.xpath(".//*[@id='primary-header-hotel']")).click();


    String result = driver.getPageSource();

    System.out.println("result is "+" "+ result);

    driver.close();
}

}

这是错误

  

线程中的异常" main" java.lang.NoClassDefFoundError:   com / google / common / base / T1.main上的函数(T1.java:12)引起:   java.lang.ClassNotFoundException:com.google.common.base.Function at   java.net.URLClassLoader.findClass(未知来源)at   java.lang.ClassLoader.loadClass(未知来源)at   sun.misc.Launcher $ AppClassLoader.loadClass(未知来源)at   java.lang.ClassLoader.loadClass(未知来源)......另外1个

我已经看到了为guava-21.0添加路径的解决方案

但更多错误

  

线程中的异常" main" java.lang.IllegalStateException:路径   必须通过webdriver.gecko.driver设置驱动程序可执行文件   系统属性;有关更多信息,请参阅   https://github.com/mozilla/geckodriver。最新版本可以   从https://github.com/mozilla/geckodriver/releases下载   com.google.common.base.Preconditions.checkState(Preconditions.java:738)     在   org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:111)     在   org.openqa.selenium.firefox.GeckoDriverService.access $ 100(GeckoDriverService.java:38)     在   org.openqa.selenium.firefox.GeckoDriverService $ Builder.findDefaultExecutable(GeckoDriverService.java:112)     在   org.openqa.selenium.remote.service.DriverService $ Builder.build(DriverService.java:302)     在   org.openqa.selenium.firefox.FirefoxDriver.createCommandExecutor(FirefoxDriver.java:312)     在   org.openqa.selenium.firefox.FirefoxDriver。(FirefoxDriver.java:272)     在   org.openqa.selenium.firefox.FirefoxDriver。(FirefoxDriver.java:267)     在   org.openqa.selenium.firefox.FirefoxDriver。(FirefoxDriver.java:263)     在   org.openqa.selenium.firefox.FirefoxDriver。(FirefoxDriver.java:122)     在T1.main(T1.java:12)

添加代码行后仍然是Client-combined-3.1.0-nodeps.jar firefox 52.0.1并使用geckodriver-v0.15.0-win64 仍然得到相同的错误

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;



public class T1 {

    public static void main(String[] args){

    System.setProperty("webdriver.gecko.driver","C:\\Users\\ahmed\\Desktop\\geckodriver.exe"); 
    WebDriver driver = new FirefoxDriver();
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);


    driver.navigate().to("https://www.orbitz.com/");

    driver.manage().window().maximize();

    driver.findElement(By.xpath(".//*[@id='primary-header-hotel']")).click();


    String result = driver.getPageSource();

    System.out.println("result is "+" "+ result);

    driver.close();
}

}

这是错误

  

线程中的异常" main" java.lang.NoClassDefFoundError:   com / google / common / base / T1.main上的函数(T1.java:14)引起:   java.lang.ClassNotFoundException:com.google.common.base.Function at   java.net.URLClassLoader.findClass(未知来源)at   java.lang.ClassLoader.loadClass(未知来源)at   sun.misc.Launcher $ AppClassLoader.loadClass(未知来源)at   java.lang.ClassLoader.loadClass(未知来源)......另外1个

1 个答案:

答案 0 :(得分:0)

在Selenium 3.1.0中,您必须执行以下操作来初始化gecko驱动程序:

System.setproperty( “webdriver.gecko.driver”, “C:\\ geckodriver_location \\ geckodriver.exe”);

Webdriver driver = new Firefoxdriver();

运行您的代码。它应该是成功的。如果这对您有用,请告诉我。