我正在尝试将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支持的版本。找不到任何好的信息。有什么想法吗?
我有完全相同的问题(不过我使用的是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'
试着把你的番石榴更新到
<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>27.1-jre</version>
</dependency>
它会解决你的问题。
此错误消息。。。
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上,可以