我想使用Gradle和Selenium api。 这是我的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 中,我正在使用 Selenium 和Chromedriver的2.9.0版本。如果我尝试使用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的版本,但没有找到有用的信息。你有什么想法吗?
selenium dependencies > 2.9.0
已经非常古老了。自_Selenium v2.9.0_以来,很多东西都发生了变化。因此,根据最佳实践,您需要升级_Selenium Client_,_ChromeDriver_和_Chrome_到当前版本以获得更好的脚本性能。 - undetected Selenium