Selenium 在 Mac 上给出“selenium.common.exceptions.WebDriverException:消息:未知错误:找不到 Chrome 二进制文件”

问题描述 投票:0回答:13

尝试让

selenium
使用 Python 3 进行网页抓取:

from selenium import webdriver
chrome_path = r"/Library/Frameworks/Python.framework/Versions/3.6/bin/chromedriver"
driver = webdriver.Chrome(chrome_path)

我收到以下错误消息:

selenium.common.exceptions.WebDriverException:消息:未知错误:找不到 Chrome 二进制文件

类似的问题已在 here 得到解决,但令我困惑的是 Chrome 已经安装在我的系统上。另一个提问者的计算机上显然没有该信息。我正在运行最新版本的 Mac 操作系统。

python python-3.x macos selenium
13个回答
67
投票

问题是 chromedriver 还需要知道 chrome 在哪里。在您的情况下,它位于非默认路径。因此,您需要指定

Google Chrome
二进制文件的完整路径。

options = webdriver.ChromeOptions()
options.binary_location = "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
chrome_driver_binary = "/usr/local/bin/chromedriver"
driver = webdriver.Chrome(chrome_driver_binary, chrome_options=options)

上面的代码是你应该使用的


9
投票

我在学习selenium时遇到了这个烦人的问题。 这是我的解决方案:(MacOS 10.13.4)

  1. 卸载我的 Chrome
  2. 使用homebrew安装chromedriver:
    brew cask install chromedriver
  3. 使用自制软件安装chrome:
    brew cask install google-chrome

感谢 homebrew 现在 chrome 和 chromedriver 安装在同一个文件夹中,这个问题将自动解决。


8
投票

如果有人在 Linux 计算机上遇到相同的错误,那么您就缺少 google chrome 安装,这是 chrome 驱动程序正常工作所需的步骤之一。

按照 此链接 在 Linux 上安装 Google chrome。

现在,检查代码

driver = webdriver.Chrome(executable_path='/usr/bin/chromedriver', options=chrome_options, service_args=['--verbose', '--log-path=/tmp/chromedriver.log'])

对我来说它有效。


7
投票

在Win上设置chrome.exe的名称很重要,否则无法创建进程(见下文):

  from selenium import webdriver
  from webdriver_manager.chrome import ChromeDriverManager

  options = webdriver.ChromeOptions()
  options.binary_location = r"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
  chrome_driver_binary = r"C:/Users/Max/.wdm/chromedriver/75.0.3770.8/win32/chromedriver.exe"
  driver = webdriver.Chrome(chrome_driver_binary, chrome_options=options)
  driver.get('http://web.whatsapp.com')

selenium.common.exceptions.WebDriverException:消息:未知错误:无法创建 Chrome 进程。

对于 Firefox(下载驱动程序 https://github.com/mozilla/geckodriver/releases):

  options = webdriver.FirefoxOptions()
  #options.add_argument('-headless')
  #options.binary_location = r"C:\maxbook\maxboxpython\geckodriver-v0.24.0-win64\geckodriver.exe"
  options.binary_location = r"C:\Program Files (x86)\Mozilla Firefox\firefox.exe"
  firefox_driver_binary = r"C:\maxbook\maxboxpython\geckodriver-v0.24.0-win64\\"
  driver = webdriver.Firefox(firefox_driver_binary, options=options)

4
投票

就我而言,我安装了 Chrome 浏览器,然后它就不会抛出错误。


3
投票
options = webdriver.ChromeOptions()
options.binary_location = r"<YOUR_CHROME_PATH>\chrome.exe"
chrome_driver_path = r"<PATH_TO_CHROME_DRIVER>\chromedriver.exe>"

browser = webdriver.Chrome(chrome_driver_path, chrome_options=options)

2
投票

如果您的

chromedriver
位于
/Library/Frameworks/Python.framework/Versions/3.6/bin/
目录中,以下代码块应该适合您:

from selenium import webdriver

chrome_path = r'/Library/Frameworks/Python.framework/Versions/3.6/bin/chromedriver'
driver = webdriver.Chrome(executable_path=chrome_path)
driver.get('https://www.google.co.in')

1
投票

您只需下载最新版本的 chrome 和 chromedriver 并安装 它


0
投票

这篇文章给出了正在发生的事情的完整细节。安装最新的网络驱动程序应该可以解决问题,而不是更改代码。

基本上 85 版 chrome 安装在不同的位置,但这只会影响新安装,因此大多数人不会注意到。

最新的网络驱动程序了解新位置,因此获取更新的驱动程序是最简单的解决方案 - 当然,除非您特别需要测试旧版本。

司机的位置。


0
投票

我最近通过简单地下载Chrome浏览器解决了这个问题。下载它并使用此代码下载最新版本的 chrome 驱动程序

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

driver = webdriver.Chrome(ChromeDriverManager().install())

0
投票

创建文件

main.py
有内容

from selenium import webdriver

options = webdriver.ChromeOptions()
options.binary_location = r"C:\Program Files\Google\Chrome\Application\chrome.exe"
chrome_driver_binary = r"C:/Users/firerose/Downloads/chromedriver_win32/chromedriver.exe"
driver = webdriver.Chrome(chrome_driver_binary, options=options)
driver.get('https://golangnow.com')

注意:新关键字是

options
.

相关链接


0
投票

如果您使用的是 ubuntu,请确保 chromedriver 可执行文件指向正确的 chromedriver。

就我而言,我遇到了这样的错误:

from unknown error: no chrome binary at /usr/bin/chromedriver

而我的可执行文件是:

/usr/local/bin/chromedriver-linux64/chromedriver

通过删除路径

/usr/bin/chromedriver
它对我有用


-1
投票

对于苹果机: 请注意 Chrome.app

之间的空格
options = webdriver.ChromeOptions()
options.binary_location = "/Applications/Google Chrome .app/Contents/MacOS/Google Chrome"
chrome_driver_binary = "/usr/local/bin/chromedriver"
driver = webdriver.Chrome(chrome_driver_binary, chrome_options=options)
© www.soinside.com 2019 - 2024. All rights reserved.