Я использую драйвер хрома селена с версией 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);
что такое proxyConfig в вашем коде?




Из вашего вопроса о вашем конкретном сценарии использования неясно, почему вы пытаетесь сигнализировать Клиент Selenium v 3.6.0 и Google-гуава 23.0 по отдельности.
Чтобы не усложнять,
- Bump guava to version 23.
Так что я не вижу там никаких проблем.
Однако, как конечный пользователь, вместо того, чтобы выбирать отдельные jar-файлы из нескольких выпусков selenium-java-X.Y.Z.zip, пользователю следует рассмотреть возможность полного удаления всех связанных с Селенбанки из старой сборки и замены на новый банки из новой сборки.
Это сообщение об ошибке ...
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 (не хромированный двоичный путь). Для этого вы должны загрузить двоичный файл 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 );
Я уже устанавливаю путь к драйверу в своем коде, пожалуйста, взгляните на это.
Возможный дубликат: stackoverflow.com/questions/49280240/…