Неисправность Chrome Driver препятствует использованию Selenium

Вопрос или проблема

Я пытаюсь запустить скрипт с использованием 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. Если у вас останутся какие-либо вопросы или дальнейшие проблемы, пожалуйста, не стесняйтесь спрашивать!

Оцените материал
Добавить комментарий

Капча загружается...