我在selenium中运行简单的代码,它抛出异常: -
@Test
public void test(){
System.setProperty("webdriver.chrome.driver", "geckodriver.exe");
WebDriver driver=new FirefoxDriver();
driver.get("https://google.com");
driver.manage().window().maximize();
}
执行脚本后会显示以下错误:
以前它正在运行,我的firefox版本是55,我正在使用最新的gecko驱动程序版本。请帮忙!!
例外情况是: - java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState(ZLjava /郎/字符串; Ljava /郎/对象;)V 在 org.openqa.selenium.remote.service.DriverService.checkExecutable(DriverService.java:136) 在 org.openqa.selenium.firefox.GeckoDriverService.access $ 000(GeckoDriverService.java:41) 在 org.openqa.selenium.firefox.GeckoDriverService $ Builder.usingFirefoxBinary(GeckoDriverService.java:108) 在 org.openqa.selenium.firefox.FirefoxDriver.toExecutor(FirefoxDriver.java:204) 在 org.openqa.selenium.firefox.FirefoxDriver。(FirefoxDriver.java:103) 在 org.openqa.selenium.firefox.FirefoxDriver。(FirefoxDriver.java:99) 在newTab.Tab.test(Tab.java:16)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)at sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)at java.lang.reflect.Method.invoke(未知来源)at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:104) 在org.testng.internal.Invoker.invokeMethod(Invoker.java:645)at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:851)at at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1177)at at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129) 在 org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112) 在org.testng.TestRunner.privateRun(TestRunner.java:756)at org.testng.TestRunner.run(TestRunner.java:610)at org.testng.SuiteRunner.runTest(SuiteRunner.java:387)at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:382)at at org.testng.SuiteRunner.privateRun(SuiteRunner.java:340)at at org.testng.SuiteRunner.run(SuiteRunner.java:289)at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)at org.testng.TestNG.runSuitesSequentially(TestNG.java:1293)at at org.testng.TestNG.runSuitesLocally(TestNG.java:1218)at at org.testng.TestNG.runSuites(TestNG.java:1133)at org.testng.TestNG.run(TestNG.java:1104)at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132) at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:236) 在org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:81)
答案 0 :(得分:1)
您在“System.setProperty(”webdriver.chrome.driver“,”geckodriver.exe“)附近使用了错误的语法;”。将“chrome.driver”替换为“gecko.driver”
@Test public void test(){
System.setProperty("webdriver.chrome.driver", "geckodriver.exe");
WebDriver driver=new FirefoxDriver();
driver.get("https://google.com");
driver.manage().window().maximize();
}
将其替换为
@Test public void test(){
System.setProperty("webdriver.gecko.driver", "geckodriver.exe");
WebDriver driver=new FirefoxDriver();
driver.get("https://google.com");
driver.manage().window().maximize();
}
答案 1 :(得分:0)
错误
Exception is:- java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState(ZLjava/lang/String;Ljava/lang/Object;)V at
是Java告诉您代码在内部调用名为
的方法的方式void checkState(boolean, java.lang.String, java.lang.Object)
在班级com.google.common.base.Preconditions
内,但此方法不可用。
这通常在您的类路径混乱时发生。
您还没有提到您正在使用的Selenium版本。因此,我将假设您正在使用最新发布的Selenium版本,3.5.2
。
请确保您使用的是com.google.guava:guava
版本23.0
。
如果您使用的是Maven,那么您可以在pom文件中添加如下所示的依赖项。
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>23.0</version>
</dependency>
答案 2 :(得分:0)
它的冲突问题,你应该查看项目结构,如果它存在2个Maven,它的冲突问题,你必须删除&#34; Maven:com.google.guava:guava: JDK ...&#34 ;.如果它只存在1个Maven番石榴,只需要更新依赖