当前位置: 首页 > 知识库问答 >
问题:

JAVAlang.NoSuchMethodError:com.google.常见的基础先决条件。检查状态(ZLjava/lang/String;)含硒、梯度和铬酸盐

岳景明
2023-03-14

我正在尝试将Selenium api用于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浏览器。然而,在构建中。gradle,我正在使用selenium和chromedriver的2.9.0版本。如果我尝试使用2.9.0之后的任何版本,它会在WebDriver=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支持的版本。找不到任何好的信息。有什么想法吗?

共有3个答案

缪宪
2023-03-14

我有完全相同的问题(不过我使用的是Maven)。

我注意到问题是使用com中的一个。谷歌。api客户端,或com.google.oauth客户端,或com.google.api:google api服务表org并排。硒。selenium导致错误。

问题是这两个依赖依赖于不同的com.google.guava:guava工件。

为了解决这个错误,您应该显式地依赖一个com.google.番石榴:番石榴制品。因此,继续在构建中添加以下内容。格雷德尔

compile'com.google.番石榴:番石榴:27.0.1-jre'

王英奕
2023-03-14

试着把你的番石榴更新到

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

它会解决你的问题。

刘绍晖
2023-03-14

此错误消息。。。

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

...表示Java客户端无法找到ChromeDriver()

根据您共享的Java代码,System.set属性()行用于设置ChromeDriver二进制路径,而不是chrome二进制路径。为此,您必须从ChromeDriver-WebDriver下载ChromeDriver二进制文件Chrome并将其放置在您的系统中,并通过System.set属性()行提及ChromeDriver的绝对路径。因此,你必须改变:

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

致:

System.setProperty("webdriver.chrome.driver", "C:\\path\\to\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
 类似资料:
  • 运行Spark 1.3.1和1.4.1时出现以下错误 Java语言lang.NoSuchMethodError:拼花地板。前提条件。检查状态(ZLjava/lang/String;)镶木地板处为V。架构。类型$PrimitiveBuilder。在拼花地板上建造(Types.java:314)。架构。类型$PrimitiveBuilder。在拼花地板上建造(类型:java:232)。架构。类型$生成

  • 当我尝试在Android Studio 3.1.2上打开我的项目时,我收到了这个Gradle项目同步失败错误,消息如下 无法加载类com。谷歌。常见的基础前提条件”。此意外错误的可能原因包括: Gradle的依赖项缓存可能已损坏(这有时会在网络连接超时后发生。)重新下载依赖项和同步项目(需要网络)

  • Selenium在无头模式下工作时,我遇到了很多问题。因此,我将这些选项添加到我的ChromeOptions对象中: --代理服务器class='direct://' --代理绕过列表=* --禁用开发shm使用 --禁用浏览器侧导航 我看到它帮助Selenium在无头模式下更快地工作并给出更好的结果,但我不明白每个选项的真正意义。每个选项有什么作用?

  • 本文的读者应当至少手动安装过一次 LFS ,如果你没有做过 LFS ,这篇文章很可能不适合你,请先按照《Linux From Scratch 6.2》做一遍 LFS 。另外,如果你对编译优化也很感兴趣,那么《GCC编译优化指南》也很值得一读。

  • Hana是一个没有外部依赖的头文件库(甚至不依赖Boost)。因此,在您自己的项目中使用Hana非常容易。基本上,只需下载本项目并添加include/目录到你的编译器的头文件搜索路径即可。或者,以下方式可以干净地安装Hana。 安装Boost 自Boost 1.61.0或更高版本开始,Hana包含在Boost中。因此,安装了Boost即可访问Hana了。 使用Homebrew 在MacOS上,可以

  • 在有向图的广度优先搜索(可能的循环)中,当一个节点退出队列时,其所有尚未访问的子节点都将进入队列,并且该过程将继续,直到队列为空为止。 有一次,我以另一种方式实现它,其中节点的所有子节点都排队,当节点出队时,检查访问状态。如果之前访问过正在退出队列的节点,则该节点将被丢弃,并继续到队列中的下一个节点。 但结果是错的。维基百科还说 深度优先搜索。。。。。。非递归实现类似于广度优先搜索,但在两个方面与