Подтвердить что ты не робот

Сообщение об ошибке: исполняемый файл "chromedriver" должен быть доступен в пути "

Я использую selenium с python и загрузил хромированный рекордер для своего компьютера с Windows с этого сайта: http://chromedriver.storage.googleapis.com/index.html?path=2.15/

После загрузки zip файла я распаковал zip файл в папку для загрузки. Затем я помещаю путь к исполняемому двоичному файлу (C:\Users\michael\Downloads\chromedriver_win32) в переменную среды "Путь".

Однако, когда я запускаю следующий код:

  from selenium import webdriver

  driver = webdriver.Chrome()

... Я продолжаю получать следующее сообщение об ошибке:

WebDriverException: Message: 'chromedriver' executable needs to be available in the path. Please look at     http://docs.seleniumhq.org/download/#thirdPartyDrivers and read up at http://code.google.com/p/selenium/wiki/ChromeDriver

Но - как объяснялось выше - исполняемый файл (!) в пути... что здесь происходит?

4b9b3361

Ответ 1

Вы можете проверить, действительно ли он находится в PATH, если вы откроете cmd и введите chromedriver (при условии, что ваш исполняемый файл chromedriver все еще назван так) и нажмите Enter. Если появляется Starting ChromeDriver 2.15.322448, PATH устанавливается соответствующим образом, и что-то происходит неправильно.

В качестве альтернативы вы можете использовать прямой путь к хронографу:

 driver = webdriver.Chrome('/path/to/chromedriver') 

Итак, в вашем конкретном случае:

 driver = webdriver.Chrome("C:/Users/michael/Downloads/chromedriver_win32/chromedriver.exe")

Ответ 2

Я вижу, что обсуждения все еще говорят о старом способе установки chromedriver, загружая двоичный файл и настраивая путь вручную.

Это можно сделать автоматически с помощью webdriver-manager

pip install webdriver-manager

Теперь вышеуказанный код в вопросе будет работать просто с изменением ниже,

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

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

То же самое можно использовать для установки Firefox, Edge и т.д.

Ответ 3

В той же ситуации с версией сообщества pycharm, поэтому, как и для cmd, вы должны перезапустить свой идеал, чтобы перезагрузить переменные пути. Перезапустите свой идеал, и все должно быть хорошо.

Ответ 4

Нам нужно добавить строку пути, начинающуюся с буквы r перед строкой, для необработанной строки. Я протестировал этот путь, и он работает.

driver = webdriver.Chrome(r"C:/Users/michael/Downloads/chromedriver_win32/chromedriver.exe")

Ответ 5

Некоторый дополнительный ввод/разъяснение для будущих читателей этой темы, чтобы избежать возиться с PATH env. переменная на уровне Windows и перезагрузка системы Windows: (копия моего ответа из fooobar.com/questions/721811/... применительно к Chrome):

(1) Загрузите chromedriver (как описано в этой теме ранее) и поместите (unzipped) chromedriver.exe в папку X:\Folder\of\your\choice

(2) Пример кода Python:

import os;
os.environ["PATH"] += os.pathsep + r'X:\Folder\of\your\choice';

from selenium import webdriver;
browser = webdriver.Chrome();
browser.get('http://localhost:8000')
assert 'Django' in browser.title

Примечания: (1) Примерный код (в ответе) может занять около 5 секунд, чтобы открыть браузер Firefox для указанного URL-адреса. (2) Консоль python будет показывать следующую ошибку, если нет сервера, уже запущенного на указанном URL-адресе или обслуживающего страницу с заголовком, содержащим строку "Django": assert "Django" в браузере.title AssertionError

Ответ 6

Когда вы разархивируете хромированный рекордер, укажите точное местоположение, чтобы вы могли его проследить позже. Ниже вы получаете правильный хромированный рекордер для своей ОС и затем разархивируете его в точное место, которое может быть предоставлено в качестве аргумента позже в вашем коде.

wget http://chromedriver.storage.googleapis.com/2.10/chromedriver_linux64.zip unzip chromedriver_linux64.zip -d /home/virtualenv/python2.7.9/

Ответ 7

Прежде чем добавить хромедрайвер в свой путь, убедитесь, что он имеет ту же версию, что и ваш браузер.

Если нет, вам нужно будет соответствовать версии: либо обновить/понизить ваш Chrome, и обновить/понизить ваш веб-драйвер.

Я рекомендую как можно больше обновлять вашу версию Chrome и соответствовать веб-драйверу.

Чтобы обновить Chrome:

  • В правом верхнем углу нажмите на три точки.
  • нажмите helpAbout Google Chrome
  • обновить версию и перезапустить Chrome

Затем загрузите совместимую версию здесь: http://chromedriver.chromium.org/downloads.

Примечание: новейший хромедрайвер не всегда соответствует новейшей версии хрома!

Теперь вы можете добавить его в PATH:

  1. создайте новую папку где-нибудь на вашем компьютере, где вы будете размещать свои веб-драйверы. Я создал папку с именем webdrivers в C:\Program Files

  2. Скопируйте путь к папке. В моем случае это был C:\Program Files\webdrivers

  3. щелкните правой кнопкой мыши на this PCproperties:

enter image description here

  1. Щелкните правой кнопкой мыши Advanced System settings
  2. Нажмите Environment Variables
  3. В System variables нажмите на path и нажмите edit
  4. нажмите new
  5. вставьте путь, который вы скопировали ранее
  6. нажмите OK во всех окнах

Это оно! Я использовал Pycharm, и мне пришлось снова открыть его. Может быть, то же самое с другими IDE или терминалами.

Ответ 8

Если вы работаете с рамкой робота RIDE. Затем вы можете скачать Chromedriver.exe со своего официального сайта и сохранить этот.exe файл в каталоге C:\Python27\Scripts. Теперь укажите этот путь как переменную среды, например. C:\Python27\Scripts\chromedriver.exe.

Перезагрузите компьютер и снова запустите тот же тест. Вы не получите эту проблему снова.

Ответ 9

Согласно инструкции, вам необходимо указать путь к ChromeDriver при создании webdriver.Chrome, например:

driver = webdriver.Chrome('/path/to/chromedriver')

Ответ 10

Можно попробовать перезагрузить компьютер, если он не работает после того, как вы уверены, что PATH установлен правильно.

В моем случае на Windows 7 я всегда получал ошибку в WebDriverException: Сообщение: для chromedriver, gecodriver, IEDriverServer. Я уверен, что у меня правильный путь. Перезагрузите компьютер, все работайте

Ответ 11

В моем случае эта ошибка исчезает, когда я скопировал файл хромированной записи в папку c:\Windows. Его потому, что каталог Windows находится в пути, на котором скрипт python проверяет наличие хромирования.

Ответ 12

Если вы используете удаленный интерпретатор, вы должны также проверить, определен ли его исполняемый PATH. В моем случае переключение с удаленного интерпретатора Docker на локальный интерпретатор решило проблему.

Ответ 13

Проверьте ваш путь для драйвера Chrome, он может не получить его оттуда. Просто скопируйте и вставьте местоположение драйвера в код.

Ответ 14

Изменение кода, как указано ниже, работает для меня:

driver = webdriver.Chrome("путь к /chromedriver.exe")

Ответ 15

Я столкнулся с той же проблемой, что и у вас. Я использую PyCharm для написания программ, и я думаю, что проблема заключается в настройке среды в PyCharm, а не в ОС. Я решил проблему, перейдя к настройке скрипта, а затем вручную редактируя переменную PATH в переменных среды. Надеюсь, вы найдете это полезным!

Ответ 16

Добавьте веб-драйвер (chromedriver.exe или geckodriver.exe) здесь C:\Windows. Это сработало в моем случае

Ответ 17

Наилучшим способом может быть получение текущего каталога и добавление к нему оставшегося адреса. Как этот код (Word на Windows. В Linux вы можете использовать что-то строковое pwd): webdriveraddress = str(os.popen("cd").read().replace("\n", ''))+'\path\to\webdriver'

Ответ 18

Когда я скачал chromedriver.exe, я просто переместил его в папку PATH C:\Windows\System32\chromedriver.exe, и у меня возникла точно такая же проблема.

Для меня решение было просто изменить папку в PATH, поэтому я просто переместил ее в папку bin сообщества Pycharm, которая также была в PATH. например:

  • C:\Windows\System32\chromedriver.exe → дал мне исключение
  • C:\Program Files\JetBrains\PyCharm Community Edition 2019.1.3\bin\chromedriver.exe → работал нормально

Ответ 19

sudo apt install chromium-chromedriver

Ответ 20

Была эта проблема с Mac Mojave, работающей с тестовой средой Robot и Chrome 77. Это решило проблему. Слава @Navarasu за указание на правильный путь.

$ pip install webdriver-manager --user # install webdriver-manager lib for python
$ python # open python prompt

Далее в приглашении Python:

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())

# ctrl+d to exit

Это приводит к следующей ошибке:

Checking for mac64 chromedriver:xx.x.xxxx.xx in cache
There is no cached driver. Downloading new one...
Trying to download new driver from http://chromedriver.storage.googleapis.com/xx.x.xxxx.xx/chromedriver_mac64.zip
...
TypeError: makedirs() got an unexpected keyword argument 'exist_ok'
  • Теперь я получил новейшую ссылку для скачивания
    • Загрузите и распакуйте chromedriver туда, куда вы хотите
    • Например: ~/chromedriver/chromedriver

Откройте ~/.bash_profile с помощью редактора и добавьте:

export PATH="$HOME/chromedriver:$PATH"

Открыть новое окно терминала, та-да 🎉

Ответ 21

я добавил chromedriver в папку usr/local/bin и все еще получаю ошибки
Traceback (последний вызов был последним): Файл "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/selenium/webdriver/common/service.py", строка 72, в начале   self.process = subprocess.Popen(cmd, env = self.env, Файл "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/subprocess.py", строка 854, в init  self._execute_child (args, исполняемый файл, preexec_fn, close_fds, Файл "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/subprocess.py", строка 1702, в _execute_child   поднять child_exception_type (errno_num, err_msg, err_filename) FileNotFoundError: [Errno2] Нет такого файла или каталога: 'chromedriver'

Во время обработки вышеуказанного исключения произошло другое исключение:

Traceback (последний вызов был последним): Файл "/Users/lena/eclipse-workspace/python project" Elena/com/вводная /helloworld.py ", строка 10, в   driver = webdriver.Chrome() Файл "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/selenium/webdriver/chrome/webdriver.py", строка 73, в init  self.service.start() Файл "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/selenium/webdriver/common/service.py", строка 81, в начале   поднять WebDriverException ( selenium.common.exceptions.WebDriverException: Сообщение: исполняемый файл chromedriver должен находиться в переменной PATH. Посмотри пожалуйста https://sites.google.com/a/chromium.org/chromedriver/home

Ответ 22

(для пользователей Mac) У меня такая же проблема, но я решил этим простым способом: вы должны поместить свой файл chromedriver.exe в ту же папку в свой исполняемый скрипт, а в pyhton напишите эту инструкцию:

import os

os.environ ["PATH"] + = os.pathsep + r'X: /your/folder/script/'