Попытка заставить 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

Подобный вопрос был адресован здесь, но меня беспокоит то, что Chrome уже установлен в моей системе. У другого спрашивающего, очевидно, не было этого на их компьютере. Я использую последнюю версию Mac OS.

18
Alex Heebs 3 Сен 2017 в 22:11

6 ответов

Лучший ответ

Проблема в том, что 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)

Над кодом это то, что вы должны использовать

28
Tarun Lalwani 3 Сен 2017 в 20:24

На 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)
0
Max Kleiner 17 Июн 2019 в 12:24

Если кто-то получает ту же ошибку на компьютере с Linux, то вы пропускаете установку google chrome , поскольку это один из шагов, необходимых для работы драйвера chrome.

Перейдите по этой ссылке установить Google Chrome на Linux.

Теперь проверьте код

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

Для меня это сработало.

2
wjandrea 10 Май 2020 в 17:47

Я столкнулся с этой раздражающей проблемой, когда я изучаю селен. Это мое решение: (MacOS 10.13.4)

  1. удалить мой хром
  2. используйте homebrew для установки chromedriver: brew cask install chromedriver
  3. используйте homebrew для установки chrome: brew cask install google-chrome

Благодаря homebrew теперь chrome и chromedriver установлены в одной папке, и эта проблема будет автоматически решена.

4
EckoTan 19 Май 2018 в 19:24

Если ваш 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
DebanjanB 5 Сен 2017 в 11:16
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)
1
adrian filipescu 28 Мар 2018 в 14:55