我得到了这个错误
java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:124)
at org.openqa.selenium.chrome.ChromeDriverService.access$000(ChromeDriverService.java:32)
at org.openqa.selenium.chrome.ChromeDriverService$Builder.findDefaultExecutable(ChromeDriverService.java:137)
at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:339)
at org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:88)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:123)
我正在为社交媒体构建一个机器人,所以我正在使用Selenium库,并且该机器人在Java应用程序上工作得很好,但是当我将代码复制到Web应用程序时,其中有一个Servlet监听我的Android应用程序,当我运行servlet时,当servlet调用使用Selenium的机器人的代码时,它会抛出该错误
System.setProperty("webdriver.chrome.driver", "C:\\Users\\manue\\OneDrive\\Escritorio\\chromedriver.exe");
driver = new ChromeDriver();
我读到这可能是因为我的芭乐版本,但我的芭乐版本是更新的,我不知道为什么我会得到这个错误。
在我的maven pom.xml中,我有如下依赖项
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.10.0</version>
</dependency>
这是我的项目结构的截图。screenshot of my project
发布于 2018-04-27 08:55:10
当我从lib路径中删除Google Collections jar时,我找到了一个可能相关的错误消息的解决方案。
(来源)
发布于 2018-03-14 22:30:10
看起来像是类路径问题。我们的类路径中有哪个版本的guava-X.jar?(很可能在webapp的WEB-INF/lib中)。可能的解决方案是在pom.xml中显式声明最新版本的芭乐。对于3.10.0版本的selenium,您需要:
<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>24.0-jre</version>
</dependency>
https://stackoverflow.com/questions/49280240
复制相似问题