【问题标题】:WebDriverException: unknown error: cannot find Chrome binary error with Selenium in Python for older versions of Google ChromeWebDriverException:未知错误:对于旧版本的 Google Chrome,在 Python 中找不到带有 Selenium 的 Chrome 二进制错误
【发布时间】:2018-10-12 19:09:04
【问题描述】:

出于兼容性原因,我更喜欢将 Chrome 版本 55.0.2883.75 与 Chromedriver v. 2.26 一起使用。我从https://www.slimjet.com/chrome/google-chrome-old-version.php 下载了旧版chrome,从https://chromedriver.storage.googleapis.com/index.html?path=2.26/ 下载了Chromedriver 2.26。

我正在使用以下代码尝试设置我的 Chrome 二进制位置:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.binary_location = "C:\\Program Files\\Chrome\\chrome64_55.0.2883.75\\chrome.exe"
driver = webdriver.Chrome('chromedriver.exe', chrome_options = options)

但是,当我尝试启动 WebDriver Python 时返回以下错误:

WebDriverException: unknown error: cannot find Chrome binary
(Driver info: chromedriver=2.26.436362
(5476ec6bf7ccbada1734a0cdec7d570bb042aa30),platform=Windows NT 10.0.14393 x86_64)

我曾尝试搜索类似的问题和答案,但到目前为止还没有运气。非常感谢您提供任何帮助 - 提前感谢您!

【问题讨论】:

  • 尝试使用单正斜杠而不是双反斜杠
  • 谢谢,但是单斜杠和双斜杠都会返回上述相同的错误。

标签: python selenium google-chrome selenium-webdriver selenium-chromedriver


【解决方案1】:

此错误消息...

WebDriverException: unknown error: cannot find Chrome binary

...表示 ChromeDriver 无法在您系统的默认位置找到 Chrome 二进制文件。

根据ChromeDriver - Requirements

ChromeDriver 服务器希望您将 Chrome 安装在每个系统的默认位置,如下所示:

1 对于 Linux 系统,ChromeDriver 期望 /usr/bin/google-chrome 成为实际 Chrome 二进制文件符号链接 >。


在非标准位置使用 Chrome 可执行文件

但是您也可以覆盖默认的 Chrome 二进制位置,如下所示:


要使用通过 ChromeDriver v2.26 安装在非标准位置的 Chrome 版本 55.x,您可以使用以下代码块:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.binary_location = "C:\\Program Files\\Chrome\\chrome64_55.0.2883.75\\chrome.exe"
driver = webdriver.Chrome(chrome_options = options, executable_path=r'C:\path\to\chromedriver.exe')
driver.get('http://google.com/')
print("Chrome Browser Invoked")
driver.quit()

参考

您可以在以下位置找到详细讨论:

【讨论】:

  • 这行得通,谢谢。为了将来参考,我将 chrome 和 chromedriver 可执行文件放在同一个目录中。
  • 在哪里可以下载适用于 linux 的 chrome 二进制文件?
  • Windows 10 怎么样?它不适用于 Vista 所示路径中名为“chrome.exe”的链接。
  • 2019 年更新:使用 options=options 而不是 chrome_options=options
  • 我读到另一条评论说我可能需要安装 Chrome 本身,而不仅仅是名为“chromedriver”的 selenium 包装器——我 Chromebook 上的 .so。所以我终于设法运行以下命令来安装我的 Chrome 可执行文件,然后一切正常。认为您必须(重新?)在 Chromebook 上安装 Chrome 很奇怪,但 Linux VM 似乎无法找到它。也许我只是不知道去哪里找。 > sudo dpkg -i google-chrome-stable_current_amd64.deb
【解决方案2】:

发生在我身上的是我没有安装主浏览器 chrome。 下载浏览器即可解决此问题。

【讨论】:

  • 我希望我可以切换到我自己的嵌在面板上的 cefsharp,而不是安装的 chrome。
【解决方案3】:

在本地使用旧版本的 chrome 驱动程序和最新的 Google Chrome 给了我同样的例外。

只需转到ChromeDriver page 并确保您拥有最新版本。

【讨论】:

    【解决方案4】:

    我在 MacOS 中遇到了类似的问题。即使在 chromeoptions 中设置了二进制路径,它也不起作用。安装npm i chromedriver后修复了

    【讨论】:

      【解决方案5】:

      我这样做是为了解决我的问题

      private WebDriver driver;
      
      @Before
      public void StartBrowser() {
      
      System.setProperty("webdriver.chrome.driver", "C://opt//WebDriver//bin//chromedriver.exe");
      driver = new ChromeDriver();
      driver.get("https://www.saucedemo.com/");}
      

      【讨论】:

        【解决方案6】:

        检查https://sites.google.com/a/chromium.org/chromedriver/getting-started 可以在webdriver的构造函数中指定二进制路径:

        driver = webdriver.Chrome('/path/to/chromedriver')  # Optional argument, if not specified will search path.
        

        【讨论】:

        • 那是 webdriver 二进制文件的路径,不是吗?我想我需要的是如何正确指定 chrome 二进制文件。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-04-02
        • 2018-02-10
        • 1970-01-01
        • 1970-01-01
        • 2020-09-25
        相关资源
        最近更新 更多