Ошибка файла не найдена при настройке Chromedriver с использованием селена - PullRequest
1 голос
/ 27 января 2020

Я пытаюсь настроить Chromedriver, используя селен в ноутбуке Jupyter. Я также настроил переменные окружения в моей Windows 10 системе, где находится chromedriver.exe, но все равно я получаю ниже показанную ошибку.

Вот мой код:

# Import Libraries
import pandas as pd
import selenium
import os
from selenium import webdriver
chrome_path = r"C:\Users\Klsingh\Desktop\chromedriver.exe"

wd = webdriver.Chrome()
wd.get(url)

Ниже ошибка, которую я получаю, перепробовала несколько методов, но все еще не может ее устранить.

---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
/opt/conda/envs/Python36/lib/python3.6/site-packages/selenium/webdriver/common/service.py in start(self)
     75                                             stderr=self.log_file,
---> 76                                             stdin=PIPE)
     77         except TypeError:

/opt/conda/envs/Python36/lib/python3.6/subprocess.py in __init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, encoding, errors)
    728                                 errread, errwrite,
--> 729                                 restore_signals, start_new_session)
    730         except:

/opt/conda/envs/Python36/lib/python3.6/subprocess.py in _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, start_new_session)
   1363                             err_msg += ': ' + repr(err_filename)
-> 1364                     raise child_exception_type(errno_num, err_msg, err_filename)
   1365                 raise child_exception_type(err_msg)

FileNotFoundError: [Errno 2] No such file or directory: 'chromedriver': 'chromedriver'

During handling of the above exception, another exception occurred:

WebDriverException                        Traceback (most recent call last)
<ipython-input-44-03162065f481> in <module>
----> 1 wd = webdriver.Chrome()
      2 wd.get(url)

/opt/conda/envs/Python36/lib/python3.6/site-packages/selenium/webdriver/chrome/webdriver.py in __init__(self, executable_path, port, options, service_args, desired_capabilities, service_log_path, chrome_options, keep_alive)
     71             service_args=service_args,
     72             log_path=service_log_path)
---> 73         self.service.start()
     74 
     75         try:

/opt/conda/envs/Python36/lib/python3.6/site-packages/selenium/webdriver/common/service.py in start(self)
     81                 raise WebDriverException(
     82                     "'%s' executable needs to be in PATH. %s" % (
---> 83                         os.path.basename(self.path), self.start_error_message)
     84                 )
     85             elif err.errno == errno.EACCES:

WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home

Я пытаюсь выполнить приведенный выше код на онлайн-сервере, а не на моем рабочем столе или в IDE. Пожалуйста, помогите.

Спасибо, Кумар

1 Ответ

0 голосов
/ 27 января 2020

Поскольку вы используете raw , т. Е. r, вам необходимо заключить абсолютный путь варианта WebDriver в одинарные кавычки то есть '...' и передача его при вызове webdriver.Chrome() через Key executable_path следующим образом:

Таким образом, эффективно Ваша строка кода будет:

chrome_path = r'C:\Users\Klsingh\Desktop\chromedriver.exe'

wd = webdriver.Chrome(executable_path=chrome_path)

В качестве альтернативы, вы можете достичь того же в одной строке следующим образом:

wd = webdriver.Chrome(executable_path=r'C:\Users\Klsingh\Desktop\chromedriver.exe')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...