我有以下代码:
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
您的建议不胜感激。
似乎您同时使用了硒和其他库,这些库带来了与最新硒不兼容的谷歌通用库。使用以下方法构建依赖关系树:
mvn dependency:tree
通过管理排除项来排除旧版本,然后直接添加新版本,或者只是尝试更新引用旧版 google Common 的库。
我最近在Spring Boot中使用Selenium和webdrivermanager maven插件时遇到了这个问题。 问题是我使用了最新的Webdrivermanager版本,但依赖于Spring Boot提供的selenium-java版本,这是以前的几个版本。 如果您发现自己处于类似的情况,解决方案非常简单,请覆盖 Selenium 依赖项的 Spring 启动版本,并确保您使用的是一致且适当的版本!
使用Selenium 2.x版本,Selenium 3.0 chromium实现不同