vij*_*msc 56 java runtime-error selenium-webdriver
当我执行以下代码时:
public static void main(String[] args) {
try {
FirefoxDriver driver = new FirefoxDriver();
driver.get("http:www.yahoo.com");
} catch (NoClassDefFoundError ex) {
System.out.println("error: " + ex.getStackTrace());
}
}
Run Code Online (Sandbox Code Playgroud)
我遇到以下错误:
错误:[Ljava.lang.StackTraceElement; @ 80f4cb
线程"main"中的异常java.lang.NoClassDefFoundError:com/google/common/base/Function
有人可以帮我找到解决方案或原因吗?
小智 110
我有同样的问题,最后我发现我忘了添加selenium-server-standalone-version.jar.我只添加了客户端jar,selenium-java-version.jar.
希望这可以帮助.
Bar*_*ers 23
NoClassDefFoundError当JRE找不到类时抛出A. 在您的情况下,它找不到com.google.common.base.Function您很可能没有添加到类路径的类.
下载以下库后:
并解压缩它们并将所有JAR文件放在一个名为libtest class 的文件夹中:
import org.openqa.selenium.firefox.FirefoxDriver;
public class Test {
public static void main(String[] args) {
try{
FirefoxDriver driver = new FirefoxDriver();
driver.get("http:www.yahoo.com");
} catch(Exception e){
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
跑了没有任何问题.
您可以按如下方式编译和运行该类:
# compile and run on Linux & Mac javac -cp .:lib/* Test.java java -cp .:lib/* Test # compile and run on Windows javac -cp .;lib/* Test.java java -cp .;lib/* Test
我遇到了同样的错误,经过调查,我发现库selenium-api 2.41.0需要guava 15.0但它被旧版本覆盖,所以我通过在pom.xml中添加以下配置将guava 15.0声明为直接依赖:
<dependency>
<artifactId>guava</artifactId>
<groupId>com.google.guava</groupId>
<type>jar</type>
<version>15.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
您的类路径中没有"google-collections"库.
有很多方法可以将库添加到类路径中,因此请提供有关如何执行程序的更多信息.
如果从命令行,您可以通过添加库到类路径
java -classpath path/lib.jar ...
您似乎正在尝试导入一些谷歌代码:
import com.google.common.base.Function;
Run Code Online (Sandbox Code Playgroud)
它没有找到它的 Function 类。检查以确保所有必需的库都在您的构建路径中,并且您正确键入了包。