Selenium Chrome驱动程序:NoClassDefFoundError:com / google / common / collect / Lists Exception

时间:2017-05-20 10:26:01

标签: java selenium selenium-webdriver selenium-chromedriver

我有以下代码:

    public static final String _DRIVER_PATH = "c:\\Users\\Public\\Downloads\\chromedriver.exe";

    .....

    System.setProperty("webdriver.chrome.driver", Constants._DRIVER_PATH);

    ChromeOptions options = new ChromeOptions();

我的依赖关系是:

<dependencies>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-chrome-driver</artifactId>
        <version>3.4.0</version>
    </dependency>
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-server</artifactId>
        <version>3.4.0</version>
    </dependency>

</dependencies>

然后我走到最后一行:

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/Lists
    at org.openqa.selenium.chrome.ChromeOptions.<init>(ChromeOptions.java:74)
    at com.FlashMain.main(FlashMain.java:39)
Caused by: java.lang.ClassNotFoundException: com.google.common.collect.Lists
    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)
    ... 2 more

我运行的是Windows 10,ChromeDriver.exe版本2.29和Chrome - 58.0.3029.110

您的建议表示赞赏。

3 个答案:

答案 0 :(得分:1)

您似乎正在使用selenium和其他库,这些库带来了Google公共库,其版本与最新的selenium不兼容。 使用:

构建dependency tre e
mvn dependency:tree

managing exclusions排除旧版本并直接添加新版本,或者只是尝试更新引用旧版google common的库。

答案 1 :(得分:0)

我最近在Spring Boot中使用Selenium和webdrivermanager maven插件遇到了这个问题。问题是我使用了最新的webdrivermanager版本,但是依赖于Spring Boot提供的selenium-java版本,而这又是几个版本。如果您遇到类似的情况,则解决方案非常简单,请为您的Selenium依赖项覆盖spring boot版本,并确保您使用一致且适当的版本!

答案 2 :(得分:-2)

使用Selenium 2.x版,Selenium 3.0铬实现不同