Selenium java.lang.NoSuchMethodError при запуске драйвера - PullRequest
0 голосов
/ 27 апреля 2018

Я попробовал приведенный ниже код, чтобы открыть 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 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)

А вот и полные зависимости:

<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>

Мне интересно, что не так с моим кодом?

1 Ответ

0 голосов
/ 28 апреля 2018

См. Последнюю строку Exception at com.example.demo.Hook.testInitializer(Hook.java:20), это исключение во время выполнения, это потому, что в вашем классе отсутствует main метод.

Цитирование Спецификация языка Java (JLS) A Java virtual machine starts execution by invoking the method main of some specified class, passing it a single argument, which is an array of strings. В частности, он ищет метод, который должен быть объявлен как ...

public class Hook {
    ...
    public static void main(String[] args) {
        // body of main method follows
        ...
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...