java.lang.NoClassDefFoundError:com / google / common / collect / Maps - Selenium

时间:2013-09-08 13:27:07

标签: selenium-webdriver

亲爱的Selenium专家,

我从JPA 2.0程序中遇到了以下运行时错误,该程序由于某种原因似乎与Firefox Profile有关:

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/Maps
    at org.openqa.selenium.firefox.FirefoxProfile.(FirefoxProfile.java:56)
    at org.openqa.selenium.firefox.FirefoxProfile.(FirefoxProfile.java:79)
    at model.DownloadCarDetail.getMercedezDetail(model.DownloadCarDetail:72)
    at model.DownloadCarDetail.getMercedezDetail.main    (model.DownloadCarDetail.getMercedezDetail.java:47)
    Caused by: java.lang.ClassNotFoundException: com.google.common.collect.Maps
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 4 more
Java Result: 1

我已将Firefox保留到15版,以便Selenium Webdriver支持它,但怀疑问题与无法读取配置文件目录有关。

您的协助非常适用。

非常感谢,

乔治

6 个答案:

答案 0 :(得分:9)

您看到的问题与您的Firefox个人资料无关。

实际上,JVM类加载器抱怨它无法找到com.google.common.collect.Maps类。

这通常意味着您的类路径上没有Guava(这是Selenium的依赖项)。清理并重建项目,检查类路径,检查可能存在的各种库版本。如果你正在使用某种依赖管理系统(Maven,Ivy等),请检查它的配置是否正确。

答案 1 :(得分:0)

感谢您提供解决此问题的建议。我找到了Selenium 2 WebDriver NoClassDefFoundErrorS的确切答案,它解决了潜在的问题。

乔治

答案 2 :(得分:0)

打开此链接https://www.seleniumhq.org/download/并将Java 3.11.0(当前版本)打开的zip文件下载到netbeans上的桌面或eclips上单击在selenium-java-3.11.0 \ libs中添加jars /文件同时选择所有文件selenium-java-3.11.0 select client-combined-3.11.0.jar你会没事的。不记得添加System.setProperty("webdriver.chrome.driver", "C:\\chromedriver.exe");代码。你可以下载chromedriver这个链接https://chromedriver.storage.googleapis.com/index.html?path=2.38/

答案 3 :(得分:0)

在我的情况下,Guava依赖项已损坏。在删除损坏的jar并重建整个项目后,工作正常。

答案 4 :(得分:0)

将.jar文件导入从here下载的Eclipse(取决于当前版本)。

答案 5 :(得分:-1)

在maven依赖项下面添加并清理和编译代码。

<!-- https://mvnrepository.com/artifact/com.google.common/google-collect -->
<dependency>
    <groupId>com.google.common</groupId>
    <artifactId>google-collect</artifactId>
    <version>0.5</version>
</dependency>