java.lang.NoSuchMethodError:com.google.common.base.premissions.checkState(ZLjava/lang/String;)和Selenium、gradle和ChromeDriver
我正在尝试将Selenium api用于Gradle。这是我的build.gradle依赖项部分:java.lang.NoSuchMethodError:com.google.common.base.premissions.checkState(ZLjava/lang/String;)和Selenium、gradle和ChromeDriver,java,selenium,gradle,selenium-webdriver,selenium-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-shee
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=new ChromeDriver()中给出以下错误;方法:
线程“main”java.lang.NoSuchMethodError中的异常:com.google.common.base.premissions.checkState(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
位于org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:124)
访问org.openqa.selenium.chrome.ChromeDriverService.access$000(ChromeDriverService.java:32)
位于org.openqa.selenium.chrome.ChromeDriverService$Builder.findDefaultExecutable(ChromeDriverService.java:137)
位于org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:339)
位于org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:88)
位于org.openqa.selenium.chrome.ChromeDriver(ChromeDriver.java:123)
位于Quickstart.main(Quickstart.java:130)
我试着寻找gradle+Maven+selenium支持的版本。找不到任何好的信息。有什么想法吗 此错误消息
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()
问题与解决方案
根据您共享的Selenium-Java代码,System.setProperty()
行用于设置ChromeDriver二进制路径而不是chrome二进制路径。为此,您必须从下载ChromeDriver二进制文件并将其放入您的系统中,并通过system.setProperty()
行提及ChromeDriver的绝对路径。因此,你必须改变:
System.setProperty("webdriver.chrome.driver", "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe");
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
…表示Java客户端无法找到ChromeDriver()
问题与解决方案
根据您共享的Selenium-Java代码,System.setProperty()
行用于设置ChromeDriver二进制路径而不是chrome二进制路径。为此,您必须从下载ChromeDriver二进制文件并将其放入您的系统中,并通过system.setProperty()
行提及ChromeDriver的绝对路径。因此,你必须改变:
System.setProperty("webdriver.chrome.driver", "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe");
WebDriver driver = new ChromeDriver();
致:
我有完全相同的问题(不过我使用的是Maven) 我注意到问题是,在
org.seleniumhq.selenium
旁边使用com.google.api客户端
,或com.google.api:google api服务表
会导致错误
问题是这两个依赖关系都依赖于不同的com.google.guava:guava
工件
为了解决这个错误,您应该显式地依赖单个com.google.guava:guava
工件。
因此,继续在您的build.gradle
中添加以下内容:
compile'com.google.guava:guava:27.0.1-jre'
我有完全相同的问题(不过我使用的是Maven)
我注意到问题是,在org.seleniumhq.selenium
旁边使用com.google.api客户端
,或com.google.api:google api服务表
会导致错误
问题是这两个依赖关系都依赖于不同的com.google.guava:guava
工件
为了解决这个错误,您应该显式地依赖单个com.google.guava:guava
工件。
因此,继续在您的build.gradle
中添加以下内容:
编译'com.google.guava:guava: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>
番石榴
番石榴
27.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>
番石榴
番石榴
27.1-jre
它会解决你的问题。我只是想在这里发帖子,以防其他人像我一样从谷歌找到这个。无论出于什么原因,我都需要使用
sudo
运行。我在使用npmselenium standalone
软件包和运行时遇到问题:
/node_modules/selenium-standalone/bin/selenium-standalone start
这将表明这个错误。是什么让它和sudo一起运行的
sudo /node_modules/selenium-standalone/bin/selenium-standalone start
我不认为我以前需要这样做,但突然间,这是它现在唯一的工作方式。我只是想在这里发布,以防其他人像我一样从谷歌访问它。无论出于什么原因,我都需要使用
sudo
运行。我在使用npmselenium standalone
软件包和运行时遇到问题:
/node_modules/selenium-standalone/bin/selenium-standalone start
这将表明这个错误。是什么让它和sudo一起运行的
sudo /node_modules/selenium-standalone/bin/selenium-standalone start
我不认为我以前需要这样做,但突然间,这是它现在唯一的工作方式。我也遇到了同样的问题,并进行了依赖性检查,发现存在冲突。对我有效的解决方案是排除相互冲突的依赖项
您的项目可能与我的项目具有不同的依赖关系。因此,在我的项目中列出具体的冲突可能没有帮助 我也遇到了同样的问题,并运行了依赖项检查,发现存在冲突。对我有效的解决方案是排除相互冲突的依赖项
您的项目可能与我的项目具有不同的依赖关系。因此,在我的项目中列出具体的冲突可能没有帮助 在pom.xml中复制并粘贴以下依赖项,然后执行maven构建:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.testng/testng -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.1.0</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/io.rest-assured/rest-assured -->
<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>rest-assured</artifactId>
<version>3.0.0</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/io.rest-assured/json-path -->
<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>json-path</artifactId>
<version>3.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.rest-assured/json-schema-validator -->
<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>json-schema-validator</artifactId>
<version>3.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.rest-assured/xml-path -->
<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>xml-path</artifactId>
<version>3.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.hamcrest/java-hamcrest -->
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>java-hamcrest</artifactId>
<version>2.0.0.0</version>
<scope>test</scope>
</dependency>
<!-- cucumber dependency begins -->
<!-- https://mvnrepository.com/artifact/net.masterthought/cucumber-reporting -->
<dependency>
<groupId>net.masterthought</groupId>
<artifactId>cucumber-reporting</artifactId>
<version>4.7.0</version>
</dependency>
<!-- starts here -->
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-core</artifactId>
<version>1.2.5</version>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java</artifactId>
<version>1.2.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-jvm</artifactId>
<version>1.2.5</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-junit</artifactId>
<version>1.2.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-jvm-deps</artifactId>
<version>1.0.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/info.cukes/cucumber-html -->
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-html</artifactId>
<version>0.2.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/info.cukes/gherkin -->
<dependency>
<groupId>info.cukes</groupId>
<artifactId>gherkin</artifactId>
<version>2.12.2</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-testng -->
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-testng</artifactId>
<version>5.4.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.theoryinpractise/cucumber-testng-factory -->
<dependency>
<groupId>com.theoryinpractise</groupId>
<artifactId>cucumber-testng-factory</artifactId>
<version>1.0.1</version>
</dependency>
<!-- https://stackoverflow.com/questions/49021707/java-lang-nosuchmethoderror-com-google-common-base-preconditions-checkstatezlj?rq=1 -->
<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>27.1-jre</version>
</dependency>
</dependencies>
朱尼特
朱尼特
4.12
测试
org.testng
testng
7.1.0
测试
放心吧
放心
3.0.0
测试
放心吧
json路径
3.0.