无法在Selenium

时间:2017-08-23 12:11:40

标签: java selenium-webdriver selenium-chromedriver

我在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)

3 个答案:

答案 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番石榴,只需要更新依赖