我有以下代码:
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
您的建议表示赞赏。
答案 0 :(得分:1)
您似乎正在使用selenium和其他库,这些库带来了Google公共库,其版本与最新的selenium不兼容。 使用:
构建dependency tre emvn 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铬实现不同