当前位置: 首页 > 知识库问答 >
问题:

在Ubuntu上运行Chrome驱动程序时,Selenium给出了“未知错误:找不到Chrome二进制文件”

公孙俊弼
2023-03-14

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

我得到了以下错误/异常。作为一个实验,我用我的本机“helloworld应用程序”替换了ChromeDriver二进制文件;我发现硒正在执行我的二进制文件。

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

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

共有3个答案

夏景胜
2023-03-14

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

禹昊穹
2023-03-14

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

更改自:

capabilities: {
    'browserName': 'chrome'
}

至:

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

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

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

我必须说,异常消息“selenium.WebDriverException:未知错误:找不到Chrome二进制文件”令人困惑。如果它说“没有安装Chrome浏览器”或类似的东西,那就容易多了。

谢谢乔治

 类似资料: