java.lang.NoSuchMethodError : com. google.common.base.Preconditions.checkState(ZLjava/lang/String;) 与 Selenium、gradle 和 ChromeDriver

标签 java selenium gradle selenium-webdriver selenium-chromedriver

我正在尝试将 Selenium api 与 Gradle 结合使用。这是我的 build.gradle 依赖部分:

dependencies {
    compile 'com.google.api-client:google-api-client:1.23.0'
    compile 'com.google.oauth-client:google-oauth-client-jetty:1.23.0'
    compile 'com.google.apis:google-api-services-sheets:v4-rev506-1.23.0'
    compile group: 'org.seleniumhq.selenium', name: 'selenium-java', version:        '2.9.0'
    compile group: 'org.seleniumhq.selenium', name: 'selenium-chrome-driver', version: '2.9.0' }

我的 Selenium - Java 代码:

System.setProperty("webdriver.chrome.driver", "C:\\Program Files(x86)\\Google\\Chrome\\Application\\chrome.exe");
WebDriver driver = new ChromeDriver();

代码运行良好,我可以打开 Chrome 浏览器。 但是,在 build.gradle 中,我使用的是 2.9.0 版本的 selenium 和 chromedriver。如果我尝试使用 2.9.0 之后的任何版本,它会在 WebDriver driver = new ChromeDriver(); 中给出以下错误方法:

Exception in thread "main" 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)
        at Quickstart.main(Quickstart.java:130)

我试着寻找 gradle+Maven+selenium 支持的版本。无法找到任何好的信息。任何的想法?

最佳答案

尝试将您的 Guava 更新为

<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>27.1-jre</version>
</dependency>

它将解决您的问题。

关于java.lang.NoSuchMethodError : com. google.common.base.Preconditions.checkState(ZLjava/lang/String;) 与 Selenium、gradle 和 ChromeDriver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49021707/

相关文章:

qt - Gradlew 抛出 java.net.SocketException

java 二维数组算术

java - 如何使用 Java 在 Windows 上获取卷 ID?

java - 如何在 Jenkins 中运行 Cucumber JVM 测试

android - Android Studio将文件下载到的目录位于什么目录?

java - 执行gradle build时需要执行自定义Task

java - Hibernate Validator 3.1.0.GA 忽略 ValidationMessages.properties(包括测试项目)

java - 服务器端的Python套接字问题

python - 如何使用 Selenium XPath 检查页面上是否存在元素?

javascript - Selenium 中的 XPath 是否针对 DOM 或 HTML 文件运行?