web-dev-qa-db-fra.com

Selenium donne le message "Erreur inconnue: impossible de trouver le binaire Chrome" lors de l'exécution du pilote Chrome sur Ubuntu

J'essaie d'exécuter des tests Selenium [Java] à l'aide du pilote chrome sur Latest ubuntu. [16.04]

Je reçois l'erreur/exception suivante… .. À titre d'expérience, j'ai remplacé le binaire ChromeDriver par mon «helloworldApp» natif; J'ai trouvé que Selenium exécute mon binaire.

Je crois que l’impression " Démarrage de ChromeDriver 2.27.440175 (9bc1d90b8bfa4dd181fbff769a5eb5e575574320) sur le port 15306 " provient du binaire chromé. Mais pourquoi Selenium se plaint de ne pas pouvoir obtenir le binaire? 

Tout fonctionne bien sous Windows.

S'il vous plaît des conseils.

     [Java] Starting ChromeDriver 2.27.440175 (9bc1d90b8bfa4dd181fbbf769a5eb5e575574320) on port 15306
     [Java] Only local connections are allowed.
     [Java] Exception in thread "main" org.openqa.Selenium.WebDriverException: unknown error: cannot find Chrome binary
     [Java]   (Driver info: chromedriver=2.27.440175 (9bc1d90b8bfa4dd181fbbf769a5eb5e575574320),platform=Linux 4.8.0-46-generic x86_64) (WARNING: The server did not provide any stacktrace information)
     [Java] Command duration or timeout: 328 milliseconds
     [Java] Build info: version: 'unknown', revision: 'unknown', time: 'unknown'
     [Java] System info: Host: 'geo-VirtualBox', ip: '127.0.1.1', os.name: 'Linux', os.Arch: 'AMD64', os.version: '4.8.0-46-generic', Java.version: '9-internal'
     [Java] Driver info: org.openqa.Selenium.chrome.ChromeDriver
     [Java]     at Sun.reflect.NativeConstructorAccessorImpl.newInstance0(Java.base@9-internal/Native Method)
     [Java]     at Sun.reflect.NativeConstructorAccessorImpl.newInstance(Java.base@9-internal/NativeConstructorAccessorImpl.Java:62)
     [Java]     at Sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Java.base@9-internal/DelegatingConstructorAccessorImpl.Java:45)
     [Java]     at Java.lang.reflect.Constructor.newInstance(Java.base@9-internal/Constructor.Java:453)
     [Java]     at org.openqa.Selenium.remote.ErrorHandler.createThrowable(ErrorHandler.Java:206)
     [Java]     at org.openqa.Selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.Java:158)
     [Java]     at org.openqa.Selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.Java:678)
     [Java]     at org.openqa.Selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.Java:249)
     [Java]     at org.openqa.Selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.Java:131)
     [Java]     at org.openqa.Selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.Java:144)
     [Java]     at org.openqa.Selenium.chrome.ChromeDriver.<init>(ChromeDriver.Java:170)
     [Java]     at org.openqa.Selenium.chrome.ChromeDriver.<init>(ChromeDriver.Java:138)
6
George

J'ai trouvé le problème. Sur mon système Linux, Google Chrome Browser n'était pas installé.

J'avais l'impression que le programme binaire de ChromeDriver est doté d'une implémentation de navigateur. Maintenant, je me suis rendu compte que c’était faux, le binaire ChromeDriver est un wrapper Selenium qui appelle Google Chrome.

Je dois dire que le message d'exception "Selenium.WebDriverException: erreur inconnue: impossible de trouver le binaire Chrome"est source de confusion. S'il disait que " Chrome Browser n'est pas installé " ou quelque chose de similaire, cela aurait été beaucoup plus facile.

Merci George

26
George

Pointant sur un emplacement binaire, a aidé à résoudre le problème.

Changé de:

capabilities: {
    'browserName': 'chrome'
}

À:

capabilities: {
    'browserName': 'chrome',
    "chromeOptions": {
      'binary': "C:\\Program Files (x86)\\Google\\Chrome Beta\\Application\\chrome.exe",
      args: [],
      extensions: [],
  }
0
Di V