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

时间:2017-09-03 19:11:55

标签: python-3.x selenium

尝试让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 OS。

9 个答案:

答案 0 :(得分:12)

问题是chromedriver还需要知道铬的位置。在您的情况下,它处于非默认路径。因此,您需要指定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)

以上代码是您应该使用的

答案 1 :(得分:1)

如果您的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')

答案 2 :(得分:1)

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)

答案 3 :(得分:1)

当我学习硒时,我遇到了这个恼人的问题。 这是我的解决方案:(MacOS 10.13.4)

  1. 卸载我的Chrome
  2. 使用自制软件安装chromedriver:brew cask install chromedriver
  3. 使用自制软件安装chrome:brew cask install google-chrome
  4. 感谢homebrew现在chrome和chromedriver安装在同一个文件夹中,这个问题将自动解决。

答案 4 :(得分:1)

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

答案 5 :(得分:0)

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

点击下面的链接以在Linux上安装Google chrome,

https://www.cyberciti.biz/faq/howto-install-google-chrome-on-redhat-rhel-fedora-centos-linux/

现在,输入验证码

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

对我来说有效。

答案 6 :(得分:0)

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

答案 7 :(得分:0)

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

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

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

Location of drivers.

答案 8 :(得分:0)

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