繁体   English   中英

无法在Selenium中打开浏览器

[英]Unable to open Browser in 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 / lang / String; Ljava / lang / Object;)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.using FirefoxBinary(GeckoDriverService.java:108) org.openqa.selenium.firefox.FirefoxDriver。(FirefoxDriver.java:103)上的.openqa.selenium.firefox.FirefoxDriver.toExecutor(FirefoxDriver.java:204),org.openqa.selenium.firefox.FirefoxDriver。(FirefoxDriver.java) :99)在sun.reflect.NativeMethodAccessorImpl.invoke的newTab.Tab.test(Tab.java:16)在sun.reflect.DelegatingMethodAccessorImpl.invoke(未知源)的sun.reflect.NativeMethodAccessorImpl.invoke(未知方法) org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java)上的java.lang.reflect.Method.invoke的源(未知源) :104)在org.testng.internal.Invoker.invokeMethod(Invoker.java:645)在org.testng.internal.Invoker.invokeTestMethod(Invoker.java:851)在org.testng.internal.Invoker.invokeTestMethods(Invoker。 org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129)的org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112)的org.testng.TestRunner.privateRun(TestRunner.java)的java:1177) :756)在org.testng.TestRunner.run(TestRunner.java:610)在org.testng.SuiteRunner.runTest(SuiteRunner.java:387)在org.testng.SuiteRunner.runSequentially(SuiteRunner.java:382)在org org.testng上的.testng.SuiteRunner.privateRun(SuiteRunner.java:340).org.testng.SuiteRunner.run(SuiteRunner.java:289)org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)org.testng.SuiteRunnerWorker。在org.testng.TestNG.runSuitesSequentially(TestNG.java:1293)在org.testng.TestNG.runSuitesLocally(TestNG.java:1218)在org.testng.TestNG.runSuites(TestNG.java)上运行(SuiteRunnerWorker.java:86) :1133)。 org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132)处的testng.TestNG.run(TestNG.java:1104)org.org的org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:236) .remote.RemoteTestNG.main(RemoteTestNG.java:81)

您在“ 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();
}

错误

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 Maven,这是冲突问题,则必须删除“ Maven:com.google.guava:guava:jdk ...”。 如果仅存在1个Maven番石榴,则只需更新依赖项

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM