Impossible de charger chromedriver depuis l'application Java [duplicate]

Sep 13 2020

J'ai des problèmes pour accéder à mon application Java chromedriver, j'ai vérifié avec htop:

    $htop
    PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
    22459 root       20   0 16632  7896  6820 S  0.0  0.8  0:00.06 sshd: root@pts/1
    22380 root       20   0 2690M  700M 12172 S  0.0 70.9  0:00.19 java -jar backend-server-0-SNAPSHOT-microbundle.jar --logToFile backend.log
    22214 root       20   0 2690M  700M 12172 S  0.0 70.9  0:00.09 java -jar backend-server-0-SNAPSHOT-microbundle.jar --logToFile backend.log
    22340 root       20   0 2690M  700M 12172 S  0.0 70.9  0:00.01 java -jar backend-server-0-SNAPSHOT-microbundle.jar --logToFile backend.log
    22342 root       20   0 2690M  700M 12172 S  0.0 70.9  0:00.02 java -jar backend-server-0-SNAPSHOT-microbundle.jar --logToFile backend.log

Puis à l'intérieur du code Java:

System.setProperty("webdriver.chrome.driver", chromeDriverPath);
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless", "--disable-gpu", "--window-size=1920,1200","--ignore-certificate-errors");
WebDriver driver = new ChromeDriver(options);

Cependant cela jette:

Caused by: java.lang.NoSuchMethodError: 'void com.google.common.base.Preconditions.checkState(boolean, java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object)'
        at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:125)
        at org.openqa.selenium.chrome.ChromeDriverService.access$000(ChromeDriverService.java:35)
        at org.openqa.selenium.chrome.ChromeDriverService$Builder.findDefaultExecutable(ChromeDriverService.java:156) at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:346)
        at org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:91)
        at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:157) 

Avant cela, le chromedriver était installé via (j'utilise un serveur Debian):

sudo mv chromedriver /usr/bin/chromedriver
sudo chown root:root /usr/bin/chromedriver
sudo chmod +x /usr/bin/chromedriver

Et vérification chromedriveret Google Chrome :

root@localhost:~# /usr/bin/chromedriver --version
ChromeDriver 85.0.4183.87 (cd6713ebf92fa1cacc0f1a598df280093af0c5d7-refs/branch-heads/4183@{#1689})
root@localhost:~# google-chrome --version
Google Chrome 85.0.4183.102

Je me demande pourquoi l'application Java est incapable d'exécuter le pilote?

Réponses

AnirudhJadhav Sep 13 2020 at 11:35

C'est parce que vous utilisez le vieux pot de goyave. Si vous mettez à jour vers la dernière version ou guava-21.0.jar, ce problème sera résolu.

télécharger le pot de goyave mis à jour https://github.com/google/guava/wiki/Release22

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>23.0</version>
</dependency>