Установлен драйвер chrome и добавлен в путь, но ошибка показывает, что Chromedriver должен быть в пути - PullRequest
0 голосов
/ 29 мая 2020

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

, если кому-то понадобится дополнительная информация, которую я буду рад предоставить, я был бы очень признателен Кто-то пытался проверить код для меня, просто дайте мне знать, чтобы я мог поделиться им на github

subprocess.py

self._execute_child(args, executable, preexec_fn, close_fds,
                                pass_fds, cwd, env,
                                startupinfo, creationflags, shell,
                                p2cread, p2cwrite,
                                c2pread, c2pwrite,
                                errread, errwrite,
                                restore_signals, start_new_session)

 hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
                                         # no special security
                                         None, None,
                                         int(not close_fds),
                                         creationflags,
                                         env,
                                         cwd,
                                         startupinfo)

service.py

self.process = subprocess.Popen(cmd, env=self.env,
                                            close_fds=platform.system() != 'Windows',
                                            stdout=self.log_file,
                                            stderr=self.log_file,
                                            stdin=PIPE) 


raise WebDriverException(
                    "'%s' executable needs to be in PATH. %s" % (
                        os.path.basename(self.path), self.start_error_message

Webdriver.py

  self.service = Service(
            executable_path,
            port=port,
            service_args=service_args,
            log_path=service_log_path)
        self.service.start()

Davids_Chegg.py

chrome_driver = r'C:\Webdrivers\chromedriver.exe\'

if __name__ == '__main__':
    browser = webdriver.Chrome("C:\Webdrivers\chromedriver.exe")
    signin()
    client.run(bot_token)
    # test comment
ERRORS:

Traceback (most recent call last):
  File "C:\Python38\lib\site-packages\selenium\webdriver\common\service.py", line 72, in start
    self.process = subprocess.Popen(cmd, env=self.env,
  File "C:\Python38\lib\subprocess.py", line 854, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "C:\Python38\lib\subprocess.py", line 1307, in _execute_child
    hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] The system cannot find the file specified

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "c:\Users\david\Desktop\Python\chegg_bot\David_s Chegg.py", line 282, in <module>
    browser = webdriver.Chrome(executable_path="chromedriver", options=opts)
  File "C:\Python38\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 73, in __init__
    self.service.start()
  File "C:\Python38\lib\site-packages\selenium\webdriver\common\service.py", line 81, in start
    raise WebDriverException(
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home

1 Ответ

0 голосов
/ 29 мая 2020

Вы можете попробовать приведенный ниже код, и вам не нужно беспокоиться о настройке пути или установке веб-драйвера в соответствии с версией веб-браузера.

Просто установите webdriver_manager, чтобы использовать этот код с помощью команды: pip install webdriver_manager

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

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

Я использую его для парсинга веб-страниц, и он отлично работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...