java Chrome 驱动程序异常 NoSuchMethodError

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/42991797/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-11-03 07:00:16  来源:igfitidea点击:

Chrome driver exception NoSuchMethodError

javaunit-testingselenium-chromedriver

提问by Tushar Deshpande

I am trying to write test case, using ChromeDriver but while trying to initialise ChromeDriver instance getting exception as,

我正在尝试使用 ChromeDriver 编写测试用例,但是在尝试初始化 ChromeDriver 实例时却出现异常,

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:111)
    at org.openqa.selenium.chrome.ChromeDriverService.access
@Test
public void test() {
    ChromeDriver driver = new ChromeDriver();
    driver.manage().window().maximize();

    driver.get("www.google.com");
} 
0(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:302) at org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:88) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:124) at DemoTests.test(DemoTests.java:12) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.runners.model.FrameworkMethod.runReflectiveCall(FrameworkMethod.java:47) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner.run(ParentRunner.java:238) at org.junit.runners.ParentRunner.schedule(ParentRunner.java:63) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) at org.junit.runners.ParentRunner.access
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.141.59</version>
    </dependency>
    <dependency>
        <groupId>com.google.api-client</groupId>
        <artifactId>google-api-client</artifactId>
        <version>1.28.0</version>
    </dependency>
    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>23.0</version>
    </dependency>
0(ParentRunner.java:53) at org.junit.runners.ParentRunner.evaluate(ParentRunner.java:229) at org.junit.runners.ParentRunner.run(ParentRunner.java:309) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

struggling on it, but unable to fix it. How can I fix this issue? Following is my code base,

挣扎在它,但无法修复它。我该如何解决这个问题?以下是我的代码库,

##代码##

回答by glee8e

It appears you are using wrong version of Google guava. Check the web driver document of the version you are using to see which guava version you should use.

看来您使用的是错误版本的谷歌番石榴。检查您使用的版本的 web 驱动程序文档,看看您应该使用哪个 guava 版本。

回答by Shaini Sinha

Generally this error will occur when you're using >45 version of chrome and selenium webdriver < 3 version.

通常,当您使用 > 45 版本的 chrome 和 selenium webdriver < 3 版本时,会发生此错误。

The best way to resolve is to upgrade your selenium webdriver version.
http://www.seleniumhq.org/download/
Download selenium-java-3.4.0.zip under Selenium Client & WebDriver Language Bindings

解决的最佳方法是升级您的 selenium webdriver 版本。
http://www.seleniumhq.org/download/
在 Selenium Client & WebDriver Language Bindings 下下载 selenium-java-3.4.0.zip

回答by Sharat

Ensure that there is no mismatch in Selenium Webdriver versions. For example ensure that same version is in C:\Program Files\SmartBear\SoapUI-5.4.0\bin\lib and C:\Program Files\SmartBear\SoapUI-5.4.0\bin and C:\Program Files\SmartBear\SoapUI-5.4.0\bin\ext in case you are running from SOAPUI Groovy

确保 Selenium Webdriver 版本没有不匹配。例如,确保相同的版本位于 C:\Program Files\SmartBear\SoapUI-5.4.0\bin\lib 和 C:\Program Files\SmartBear\SoapUI-5.4.0\bin 和 C:\Program Files\SmartBear\ SoapUI-5.4.0\bin\ext 以防您从 SOAPUI Groovy 运行

回答by Ashwani Verma

Add below dependency to resolve the issue:

添加以下依赖项以解决问题:

##代码##