- Вопрос или проблема
- Ответ или решение
- Решение проблемы с ChromeDriver и Selenium
- 1. Убедитесь, что ChromeDriver установлен и доступен
- 2. Добавление пути к ChromeDriver в системный PATH
- 3. Проверка работы ChromeDriver через командную строку
- 4. Пример использования в вашем скрипте
- 5. Если проблема сохраняется
- Заключение
Вопрос или проблема
Я пытаюсь запустить скрипт с использованием Selenium и Chromedriver в качестве драйвера. Я получаю следующую информацию об ошибке:
Traceback (последний вызов последним):
Файл "C:\Users\samde\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\common\service.py", строка 76, в начале
stdin=PIPE)
Файл "C:\Users\samde\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py", строка 775, в __init__
restore_signals, start_new_session)
Файл "C:\Users\samde\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py", строка 1178, в _execute_child
startupinfo)
FileNotFoundError: [WinError 2] Система не может найти указанный файл
Во время обработки вышеупомянутого исключения произошло другое исключение:
Traceback (последний вызов последним):
Файл "scrape.py", строка 10, в
options= chrome_options)
Файл "C:\Users\samde\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\chrome\webdriver.py", строка 73, в __init__
self.service.start()
Файл "C:\Users\samde\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\common\service.py", строка 83, в start
os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Сообщение: 'chromedriver' исполняемый файл должен быть в PATH. Пожалуйста, смотрите https://sites.google.com/a/chromium.org/chromedriver/home
Я думаю, что это может быть проблема с путём, но не уверен, как её исправить. Я добавил расположение chromedriver в PATH в “Переменных окружения” при установке драйвера Chrome. Его расположение / путь: “C:\Web_Drivers”.
Когда я вызываю chromedriver в PowerShell, я получаю следующее сообщение:
Запуск ChromeDriver 76.0.3809.126 (d80a294506b4c9d18015e755cee48f953ddc3f2f-refs/branch-heads/3809@{#1024}) на порту 9515
Разрешены только локальные подключения.
Пожалуйста, защитите порты, используемые ChromeDriver и соответствующими тестовыми фреймворками, чтобы предотвратить доступ вредоносного кода.
Основные шаги по устранению неполадок
-
Вы можете попробовать использовать обычную командную строку (вместо PowerShell) и посмотреть, поможет ли это решить проблему.
-
Следующее, что следует учесть, — это если вы поместили путь к
chromedriver.exe
в вашUser
путь, а не в вашSystem
путь. -
Вам следует выйти из системы и войти снова после обновления переменных пути. В некоторых случаях может потребоваться перезагрузка ПК.
Вызов ChromeDriver
Предполагая, что ChromeDriver находится в вашем пути Windows, используйте либо chromedriver
, либо chromedriver.exe
в своем скрипте, например:
например, без executable_path
driver = webdriver.Chrome('chromedriver')
например, с executable_path
driver = webdriver.Chrome(options=options, executable_path="chromedriver")
например, с executable_path
и переменной
chromedriver_path="chromedriver"
driver = webdriver.Chrome(options=options, executable_path=chromedriver_path)
Другие варианты
Существует несколько вариантов указания пути к ChromeDriver напрямую:
-
Предполагая, что
chromedriver.exe
находится в той же папке, что и ваш скрипт:driver = webdriver.Chrome()
-
Указание полного пути к
chromedriver.exe
безexecutable_path
:driver = webdriver.Chrome('C:/path/to/chromedriver.exe')
-
Указание полного пути к
chromedriver.exe
сexecutable_path
:driver = webdriver.Chrome(options=options, executable_path="C:/path/to/chromedriver.exe")
-
Указание полного пути к
chromedriver.exe
сexecutable_path
и переменной:chromedriver_path="C:/path/to/chromedriver.exe" driver = webdriver.Chrome(options=options, executable_path=chromedriver_path)
Имейте в виду, что хотя вы также можете использовать C:\path\to\chromedriver.exe
и C:\\path\\to\\chromedriver.exe
, некоторые форки Chromium\ChromeDriver могут не принимать C:\path\to\chromedriver.exe
. В этом случае попробуйте использовать либо \\
, либо /
вместо этого.
Ответ или решение
Решение проблемы с ChromeDriver и Selenium
Ошибка, которую вы получаете, указывает на то, что исполняемый файл chromedriver
не найден в системном PATH. Это распространенная проблема при работе с Selenium и ChromeDriver. Давайте рассмотрим шаги, которые помогут вам это исправить.
1. Убедитесь, что ChromeDriver установлен и доступен
Первое, что нужно сделать, это проверить, что chromedriver.exe
действительно находится по указанному вами пути C:\Web_Drivers
.
2. Добавление пути к ChromeDriver в системный PATH
Если вы уже добавили этот путь в переменную окружения PATH, убедитесь, что он добавлен в системный, а не в пользовательский PATH. Также обязательно проверьте, что изменения применились:
- Перейдите в Параметры системы → Дополнительно → Переменные среды.
- Найдите переменную PATH в "Системных переменных" и убедитесь, что там присутствует путь к
C:\Web_Drivers
. - После изменений перезагрузите компьютер или хотя бы выйдите и снова войдите в систему, чтобы обновить переменные среды.
3. Проверка работы ChromeDriver через командную строку
Откройте обычную командную строку (не PowerShell) и введя chromedriver
, убедитесь, что вы получаете сообщение о том, что ChromeDriver запущен. Это подтвердит, что исполняемый файл доступен в PATH.
4. Пример использования в вашем скрипте
Вы можете использовать ChromeDriver несколькими способами в вашем Python скрипте. Ниже приведены примеры:
Пример 1: Использование без параметра executable_path
(если в PATH):
from selenium import webdriver
driver = webdriver.Chrome()
Пример 2: Указание полного пути к ChromeDriver:
from selenium import webdriver
driver = webdriver.Chrome('C:/Web_Drivers/chromedriver.exe')
Пример 3: Использование переменной:
from selenium import webdriver
chromedriver_path = "C:/Web_Drivers/chromedriver.exe"
driver = webdriver.Chrome(executable_path=chromedriver_path)
5. Если проблема сохраняется
Если после выполнения вышеуказанных шагов ошибка все еще возникает, сделайте следующее:
- Проверьте, совместимы ли версии Chrome и ChromeDriver друг с другом. Убедитесь, что ваша версия ChromeDriver соответствует установленной версии браузера Chrome. Это можно проверить на официальной странице ChromeDriver.
- Попробуйте обновить как браузер Chrome, так и ChromeDriver до последней версии.
Заключение
Следуя указанным шагам, вы должны быть в состоянии устранить проблему с недоступностью ChromeDriver для использования в Selenium. Если у вас останутся какие-либо вопросы или дальнейшие проблемы, пожалуйста, не стесняйтесь спрашивать!