Selenium WebDriverException 'chromedriver.exe' должен быть в ПУТИ - PullRequest
0 голосов
/ 08 ноября 2019

Я пытаюсь использовать селен для веб-утилиты Python, но когда я пытаюсь запустить программу, я получаю следующую ошибку:

/usr/local/bin/python3 /Users/xxx/Documents/Python/hello.py                                     
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/selenium/webdriver/common/service.py", line 72, in start
    self.process = subprocess.Popen(cmd, env=self.env,
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/subprocess.py", line 854, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/subprocess.py", line 1702, in _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: '/Users/xxx/Documents/Python/chromedriver.exe'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/xxx/Documents/Python/hello.py", line 9, in <module>
    wd = webdriver.Chrome(executable_path=DRIVER_PATH)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/selenium/webdriver/chrome/webdriver.py", line 73, in __init__
    self.service.start()
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/selenium/webdriver/common/service.py", line 81, in start
    raise WebDriverException(
selenium.common.exceptions.WebDriverException: Message: 'chromedriver.exe' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home

Вот код Python:

from urllib.request import urlopen
from bs4 import BeautifulSoup
import re
from selenium import webdriver


DRIVER_PATH = '/Users/xxx/Documents/Python/chromedriver.exe'

wd = webdriver.Chrome(executable_path=DRIVER_PATH)

Мне кажется, проблема в том, что я не указываю путь к файлу в переменной DRIVER_PATH правильно, но я не уверен

Я использую Mac

Ответы [ 2 ]

0 голосов
/ 08 ноября 2019

Вам необходимо обновить DRIVER_PATH, чтобы включить корневой каталог, который обычно составляет C:\:

DRIVER_PATH = 'C:/Users/xxx/Documents/Python/chromedriver.exe'

Кроме того, вы можете следовать этому руководству, чтобы добавить путь к папке, содержащей chromedriver.exe(обычно папка chromedriver_win32) в переменную окружения Path:

https://docs.telerik.com/teststudio/features/test-runners/add-path-environment-variables

0 голосов
/ 08 ноября 2019

Я бы попробовал это (просто добавив 'r'):

wd = webdriver.Chrome(executable_path=r'/Users/xxx/Documents/Python/chromedriver.exe')

, если вы думаете, что это путь к файлу, тогда попробуйте проверить:

import os.path
os.path.exists(DRIVER_PATH)

Также,Beautifulsoup используется будет с urllib2 https://www.pythonforbeginners.com/beautifulsoup/beautifulsoup-4-python

import urllib2
url = "https://www.URL.com"
content = urllib2.urlopen(url).read()
soup = BeautifulSoup(content)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...