在Ubuntu上运行chrome驱动程序时,Selenium会出现“未知错误:无法找到Chrome二进制文件”

时间:2017-04-07 21:16:36

标签: selenium selenium-chromedriver ubuntu-16.04

我正在尝试在最新的ubuntu上使用chrome驱动程序运行selenium [java]测试。[16.04]

我收到以下错误/异常。 作为实验,我用我的原生“helloworldApp”替换了ChromeDriver二进制文件;我发现selenium正在执行我的二进制文件。

我相信在端口15306 上打印“启动ChromeDriver 2.27.440175(9bc1d90b8bfa4dd181fbbf769a5eb5e575574320)”来自chrome二进制文件。但为什么硒抱怨它无法获得二进制?

Windows上一切正常。

请建议。

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

5 个答案:

答案 0 :(得分:26)

我发现了问题。在我的Linux系统上,未安装Google Chrome浏览器。

我认为ChromeDriver二进制文件中有一个浏览器实现。现在我意识到这是错误的,ChromeDriver二进制文件是一个调用Google Chrome的selenium包装器。

我必须说异常消息&#34; selenium.WebDriverException:未知错误:找不到Chrome二进制文件&#34; 令人困惑。如果它告诉&#34; Chrome浏览器未安装&#34;或类似的东西会更容易。

由于   乔治

答案 1 :(得分:1)

检查您机器上安装的 chrome 版本, 然后从 https://sites.google.com/a/chromium.org/chromedriver/

下载相同的版本

答案 2 :(得分:0)

指向二进制位置,有助于解决此问题。

更改自:

capabilities: {
    'browserName': 'chrome'
}

收件人:

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

答案 3 :(得分:0)

您可以通过NPM安装Chrome:

https://www.npmjs.com/package/chromium

  

npm安装铬

然后,映射您的Chrome二进制文件:

const chromium = require('chromium');

capabilities: [
    {
        browserName: 'chrome',
        'goog:chromeOptions': {
            binary: chromium.path
        },
    },
],

答案 4 :(得分:-1)

在我的Windows 10上安装Chrome时出现问题。尝试在计算机上重新安装此问题。

如果无法解决问题,请使用Gecko驱动程序和Firefox。