Сообщение об ошибке: исполняемый файл "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
Но - как объяснялось выше - исполняемый файл (!) в пути... что здесь происходит?
Ответы
Ответ 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:
- В правом верхнем углу нажмите на три точки.
- нажмите
help
→ About Google Chrome
- обновить версию и перезапустить Chrome
Затем загрузите совместимую версию здесь: http://chromedriver.chromium.org/downloads.
Примечание: новейший хромедрайвер не всегда соответствует новейшей версии хрома!
Теперь вы можете добавить его в PATH:
-
создайте новую папку где-нибудь на вашем компьютере, где вы будете размещать свои веб-драйверы. Я создал папку с именем webdrivers
в C:\Program Files
-
Скопируйте путь к папке. В моем случае это был C:\Program Files\webdrivers
-
щелкните правой кнопкой мыши на this PC
→ properties
:
![enter image description here]()
- Щелкните правой кнопкой мыши
Advanced System settings
- Нажмите
Environment Variables
- В
System variables
нажмите на path
и нажмите edit
- нажмите
new
- вставьте путь, который вы скопировали ранее
- нажмите 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/'