selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH error with Headless Chrome
selenium.common.exceptions.WebDriverException: Сообщение: исполняемый файл 'chromedriver' должен быть в PATH error с безголовым Chrome
когда я запускаю свой скрипт, я получаю эту ошибку
Traceback (most recent call last): File "C:\Users\ishaq\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\common\service.py", line 74, in start stdout=self.log_file, stderr=self.log_file) File "C:\Users\ishaq\AppData\Local\Programs\Python\Python36\lib\subprocess.py", line 707, in __init__ restore_signals, start_new_session) File "C:\Users\ishaq\AppData\Local\Programs\Python\Python36\lib\subprocess.py", line 992, in _execute_child startupinfo) 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/ishaq/AppData/Local/Programs/Python/Python36/headless.py", line 9, in <module> driver = webdriver.Chrome(executable_path=os.path.abspath("chromedriver"), chrome_options=chrome_options) File "C:\Users\ishaq\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 62, in __init__ self.service.start() File "C:\Users\ishaq\AppData\Local\Programs\Python\Python36\lib\site-packages\selenium\webdriver\common\service.py", line 81, in start os.path.basename(self.path), self.start_error_message) selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home
вот мой скрипт
import os from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.chrome.options import Options
search_field = driver.find_element_by_id("site-search") search_field.clear() search_field.send_keys("Olabode") search_field.send_keys(Keys.RETURN) assert"Looking Back at Android Security in 2016"in driver.page_source driver.close()
Переведено автоматически
Ответ 1
Если мы проанализируем журналы, то, похоже, основная проблема связана с in start os.path.basename(self.path) и последующим сообщением об ошибке:
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH
Итак, из ошибки ясно, что клиенту Python не удалось найти исполняемый двоичный файл chromedriver.
Вам нужно позаботиться о нескольких вещах следующим образом:
chrome_options.binary_location : Параметр указывает на chrome.exe не на chromedriver.exe
os.path.abspath("chromedriver") будет указан путь к файлу chromedriver, но не будет добавлен chromedriver.exe в конце.