Selenium java.lang.NoSuchMethod启动驱动程序时出错
我尝试了以下代码来打开chrome webdriver,然后使用它打开google.com:Selenium java.lang.NoSuchMethod启动驱动程序时出错,java,selenium,selenium-chromedriver,Java,Selenium,Selenium Chromedriver,我尝试了以下代码来打开chrome webdriver,然后使用它打开google.com: import java.io.File; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class Hook{ private WebDriver driver; public void testInitializer(){ File fi
import java.io.File;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class Hook{
private WebDriver driver;
public void testInitializer(){
File file = new
File(Application.class.getClassLoader()
.getResource("driver/chromedriver.exe").getFile());
String driverPath=file.getAbsolutePath();
System.out.println("Webdriver is in path: "+driverPath);
System.setProperty("webdriver.chrome.driver",driverPath);
driver=new ChromeDriver();
}
public Hook() {
testInitializer();
driver.get("https://www.google.com/");
}
}
但它抱怨道:
driver=new ChromeDriver();
出现以下错误:
Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.util.concurrent.SimpleTimeLimiter.create(Ljava/util/concurrent/ExecutorService;)Lcom/google/common/util/concurrent/SimpleTimeLimiter;
at org.openqa.selenium.net.UrlChecker.<init>(UrlChecker.java:62)
at org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:187)
at org.openqa.selenium.remote.service.DriverService.start(DriverService.java:178)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:79)
at org.openqa.selenium.remote.RemoteWebDriver.execute
at org.openqa.selenium.remote.RemoteWebDriver.startSession
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:142)
at org.openqa.selenium.chrome.ChromeDriver.<init>
at org.openqa.selenium.chrome.ChromeDriver.<init>
at org.openqa.selenium.chrome.ChromeDriver.<init>
at com.example.demo.Hook.testInitializer(Hook.java:20)
线程“main”java.lang.NoSuchMethodError中的异常:com.google.common.util.concurrent.SimpleTimeLimiter.create(Ljava/util/concurrent/ExecutorService;)Lcom/google/common/util/concurrent/SimpleTimeLimiter;
位于org.openqa.selenium.net.UrlChecker.(UrlChecker.java:62)
位于org.openqa.selenium.remote.service.DriverService.waitUntilavable(DriverService.java:187)
位于org.openqa.selenium.remote.service.DriverService.start(DriverService.java:178)
位于org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:79)
在org.openqa.selenium.remote.RemoteWebDriver.execute上
位于org.openqa.selenium.remote.RemoteWebDriver.startSession
位于org.openqa.selenium.remote.RemoteWebDriver(RemoteWebDriver.java:142)
位于org.openqa.selenium.chrome.ChromeDriver。
位于org.openqa.selenium.chrome.ChromeDriver。
位于org.openqa.selenium.chrome.ChromeDriver。
位于com.example.demo.Hook.testInitializer(Hook.java:20)
以下是完整的依赖关系:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.4.0</version>
</dependency>
<dependency>
<groupId>info.cukes</groupId>
<artifactId>cucumber-java</artifactId>
<version>1.2.5</version>
</dependency>
org.seleniumhq.selenium
硒爪哇
3.4.0
信息杯
黄瓜爪哇
1.2.5
我想知道,我的代码怎么了?请参阅com.example.demo.Hook.testInitializer(Hook.java:20)上的异常
的最后一行,这是运行时异常,因为您的类缺少main
方法
引用(JLS)Java虚拟机通过调用某个指定类的main方法开始执行,并向其传递一个参数,该参数是字符串数组
。更具体地说,它正在寻找一个应该声明为
public class Hook {
...
public static void main(String[] args) {
// body of main method follows
...
}
}
您使用的是什么版本的selenium?看起来有些依赖项需要更新。请参阅3.4.0版对我来说很好。@kamyarassteshSystem.out.println(“Webdriver在路径中:“+driverPath”)代码>为您打印?