Невозможно создать ChromeOptions с драйвером селена Chrome - PullRequest
0 голосов
/ 04 июня 2018

Я пользуюсь драйвером селена Chrome версии 3.6.0 и использую google-guava 23.0.Когда я делаю это:

 ChromeOptions chromeOptions = new ChromeOptions();

Это выдает следующую ошибку:

java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V

    at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:124)
    at org.openqa.selenium.chrome.ChromeDriverService.access$000(ChromeDriverService.java:32)
    at org.openqa.selenium.chrome.ChromeDriverService$Builder.findDefaultExecutable(ChromeDriverService.java:137)
    at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:329)
    at org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:88)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:157)

Я также проверил это: https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-chrome-driver/3.6.0 Может кто-нибудь помочь мне, какую версию гуавы я должен использоватьздесь?

код:

System.setProperty("webdriver.chrome.driver", driverPath);
    log.warn("chrome driver path is : {}", driverPath);
    List<String> options = proxyConfig.getChromeOptions();
    ChromeOptions chromeOptions = new ChromeOptions();
      chromeOptions.addArguments(options);
    Map<String, String> capabilites = proxyConfig.getCapabilities();
    for(Map.Entry<String, String> entry : capabilites.entrySet()) {
      chromeOptions.setCapability(entry.getKey(), entry.getValue());
    }
    return new ChromeDriver(chromeOptions);

1 Ответ

0 голосов
/ 04 июня 2018

Из вашего вопроса о конкретном сценарии использования неясно, почему вы пытаетесь сигнализировать Selenium Client v 3.6.0 и google-guava 23.0 по отдельности.

Для простоты

  • Selenium Client v 3.6.0 использует guava v23.0
  • ReleaseПримечания Selenium Client v 3.5.1 четко упоминают следующее:
  • Поднимите гуаву до версии 23.

Итак, я не вижу никаких проблем там.

Однако, как конечный пользователь, вместо выбора отдельных jar-файлов из нескольких selenium-java-XYZzip , пользователю следует рассмотреть возможность полного удаления всех Selenium связанных jars из старой сборки и замените ее новыми банками из новой сборки.

Это конкретная проблема

Это сообщение об ошибке ...

java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState(ZLjava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V

... подразумевает, что Java-клиент не смог найти ChromeDriver()

Будет трудно проанализировать реальную проблему в отсутствие ваших испытаний кода.Однако согласно java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState (ZLjava / lang / String;) с Selenium, gradle и ChromeDriver вам необходимо использовать строку System.setProperty() дляустановите двоичный путь ChromeDriver ( не двоичный путь chrome ).Для этого вам необходимо загрузить двоичный файл ChromeDriver из ChromeDriver - WebDriver для Chrome и поместить его в свою систему и указать абсолютный путь ChromeDriver до System.setProperty() линии.Следовательно, вы должны использовать строку:

System.setProperty("webdriver.chrome.driver", "C:\\path\\to\\chromedriver.exe");
ChromeOptions chromeOptions = new ChromeOptions();
// configurations through chromeOptions 
WebDriver driver = new ChromeDriver(chromeOptions );
...