오류 메시지 : " 'chromedriver'실행 파일이 경로에 있어야합니다"


171

나는 파이썬과 함께 셀레늄을 사용하고 있으며이 사이트에서 내 Windows 컴퓨터 용 chromedriver를 다운로드했습니다 : http://chromedriver.storage.googleapis.com/index.html?path=2.15/

zip 파일을 다운로드 한 후 zip 파일의 다운로드 폴더로 압축을 풉니 다. 그런 다음 실행 가능한 바이너리 (C : \ Users \ michael \ Downloads \ chromedriver_win32)의 경로를 환경 변수 "경로"에 넣습니다.

그러나 다음 코드를 실행할 때 :

  from selenium import webdriver

  driver = webdriver.Chrome()

... 다음과 같은 오류 메시지가 계속 나타납니다.

WebDriverException: Message: 'chromedriver' executable needs to be available in the path. Please look at     http://docs.seleniumhq.org/download/#thirdPartyDrivers and read up at http://code.google.com/p/selenium/wiki/ChromeDriver

그러나-위에서 설명한 것처럼 실행 파일은 경로에 있습니다 ...! 여기서 무슨 일이 일어나고 있습니까?


20
chromedriver.exePython 스크립트와 동일한 디렉토리에를 복사하십시오 .
— Malik Brahimi

4
Chocolatey 를 통해 설치 하면 경로에 추가됩니다 choco install chromedriver.
— WhatIsHeDoing

pycharm에서이 문제가 발생하면 다시 시작하면 문제가 해결됩니다.
— Charles Chow

ImNt의 답변에 동의합니다. virtualenv를 사용하는 사람들을 위해 추가하고 싶지만 다음 예제 형식을 사용하여 venv 파일에서 관리자로 python을 실행해야합니다. driver = webdriver.Chrome (r'C : / Users / michael / Downloads / chromedriver_win32 /chromedriver.exe ')
— Pineda

@MalikBrahimi 나는이 솔루션을 모든 곳에서 검색 해 왔으며 귀하의 의견을 찾을 때까지는 실제로 아무것도 작동하지 않았습니다. 감사합니다
— user2720864

답변:


178

cmd를 열고 chromedriver(chromedriver 실행 파일의 이름이 여전히 이와 같다고 가정) 입력하고 Enter 키를 누르면 실제로 PATH에 있는지 테스트 할 수 있습니다 . 경우 Starting ChromeDriver 2.15.322448나타나는되면, PATH가 적절하게 설정하고 잘못가는 뭔가가있다.

또는 다음과 같이 chromedriver의 직접 경로를 사용할 수 있습니다.

 driver = webdriver.Chrome('/path/to/chromedriver') 

따라서 특정 경우 :

 driver = webdriver.Chrome("C:/Users/michael/Downloads/chromedriver_win32/chromedriver.exe")

3
"ChromeDriver 2.15.322448 시작"이 표시되었습니다. "로컬 연결 만 허용됩니다." 또한 나타났다. ...하지만 괜찮을 것 같아요? .... 궁금한 점은 다음과 같습니다. 웹 사이트에는 32 비트 버전의 chromedriver 만 사용할 수 있었지만 64 비트 창에서 제대로 작동해야합니까?
— steady_progress

@steady_progress 그래, 괜찮아. 그리고 이것은 64 비트 Windows에서 작동합니다. 나는 그것을 직접 사용하고 있습니다. 아마도 셀레늄 버전이 문제를 일으킬 수 있다고 생각합니까? 어느 것을 설치 했습니까? ?를 사용하여 설치 했습니까 pip?
— lmNt

답변에서 언급 한대로 웹 드라이버를 호출 할 때 드라이버의 직접 경로를 사용해 보셨습니까? 같은 오류로 실패 했습니까?
— lmNt

4
PATH에 웹 드라이버를 추가 할 때 OS에 관계없이 웹 드라이버가 저장된 디렉토리 만 포함하고 실행 파일은 포함하지 마십시오. 예 : PATH = $ PATH : / path / to / webdriver / chromedriver가 아닌 PATH = $ PATH : / path / to / webdriver / 폴더 또한 PATH를 사용하면 위치가 webdriver.Chrome () 호출로 전달되는 것보다 훨씬 이식성이 뛰어납니다. 코드가 실행될 때마다 PATH가 올바르게 설정되어 있다고 가정 할 수 있지만 파일 구조가 동일하게 설정되었다고 가정 할 수는 없습니다. .
— Aphid

2
동일한 솔루션을 사용하려고 시도했지만 다음 오류가 발생했습니다. WebDriverException : 메시지 : 'chromedriver.exe'실행 파일에 잘못된 권한이있을 수 있습니다. 참조하시기 바랍니다 sites.google.com/a/chromium.org/chromedriver/home
— 인 Yogesh

151

바이너리를 다운로드하고 경로를 수동으로 구성하여 chromedriver를 설정하는 기존 방법에 대한 토론이 여전히 진행되고 있음을 알 수 있습니다.

이것은 웹 드라이버 관리자를 사용하여 자동으로 수행 할 수 있습니다

pip install webdriver-manager

이제 질문의 위 코드는 아래의 변경으로 간단하게 작동합니다.

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

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

Firefox, Edge 및 ie 바이너리를 설정하는데도 마찬가지입니다.


@Navarasu는 모든 사람이 왜 전류가 3.7 일 때 3.6에서 뭔가를 따라갈 것입니까? 다음 번에 그것은 3.6이라고 명시 적으로 말하는 것이 좋을 것입니다 .... 감사합니다
— Azy Sır

5
이 최신 상태로 유지으로이 너무 굉장
— 레슬리 Alldridge

1
이 솔루션의 좋은 점은 특정 경로 설정을 기반으로 한 다른 솔루션보다 유연성이 뛰어나다는 것입니다. 여러 시스템에서 스크립트를 사용하는 측면에서는 비실용적입니다.
— IBRAHIM

14

pycharm 커뮤니티 에디션과 동일한 상황이므로 cmd와 마찬가지로 경로 변수를 다시로드하려면 ide를 다시 시작해야합니다. 당신의 아이디어를 다시 시작하면 괜찮을 것입니다.


2
감사. Visual Studios에서 동일한 문제가있었습니다. 방금 IDE를 다시 시작하고 작동했습니다 :) 감사합니다
— DollarAkshay

나를 위해 일했습니다.
— CARTOS

13

Linux (Ubuntu 또는 Debian)에서 :

sudo apt install chromium-chromedriver

macOS에서 https://brew.sh/ 를 설치 한 다음

brew cask install chromedriver

다음을 사용하십시오 : driver = webdriver.Chrome ( '/ usr / lib / chromium-browser / chromedriver') .. $ PATH를 변경하지 않고
— 연금술

@ 연금술 당신이 그렇게해야합니까? 내가 기억할 때 driver = webdriver.Chrome()나를 위해 잘 일했다.
— Boris

안녕하세요 보리스, 네, 왜 그런지 모르겠습니다. PATH에 추가 한 후에도 그것 없이는 작동하지 않았습니다. 경로를 올바르게 설정하는 것이 더 나을 것이라고 확신하지만 Chromedriver를 사용하여 한 가지 작업 만 신속하게 수행하면됩니다.
— 연금술

9

r원시 문자열의 경우 문자열 앞에 문자로 시작하는 경로 문자열을 추가해야 합니다. 나는이 방법으로 테스트했으며 작동합니다.

driver = webdriver.Chrome(r"C:/Users/michael/Downloads/chromedriver_win32/chromedriver.exe")

3

PATH env를 사용하여 땜질을 피하기 위해이 스레드의 향후 독자를위한 추가 입력 / 설명 Windows 수준에서 변수를 설정하고 Windows 시스템을 다시 시작하십시오 ( Chrome에 해당하는 https://stackoverflow.com/a/49851498/9083077의 답변 복사 ).

(1) 이전에이 스레드에서 설명한대로 chromedriver를 다운로드하고 압축이 풀린 chromedriver.exe를 X : \ Folder \ of \ your \ choice에 놓습니다.

(2) 파이썬 코드 샘플 :

import os;
os.environ["PATH"] += os.pathsep + r'X:\Folder\of\your\choice';

from selenium import webdriver;
browser = webdriver.Chrome();
browser.get('http://localhost:8000')
assert 'Django' in browser.title

참고 : (1) 샘플 코드 (참조 된 답변에서)가 지정된 URL에 대한 Firefox 브라우저를 여는 데 약 5 초가 걸릴 수 있습니다. (2) 지정된 URL에서 이미 실행중인 서버가 없거나 문자열 'Django'를 포함하는 제목을 가진 페이지를 제공하는 서버가 없으면 Python 콘솔에 다음 오류가 표시됩니다. assert 'Django'in browser.title AssertionError


3

Linux 및 OSX의 경우

1 단계 : Chromedriver 다운로드

# You can find more recent/older versions at http://chromedriver.storage.googleapis.com/
# Also make sure to pick the right driver, based on your Operating System
wget http://chromedriver.storage.googleapis.com/81.0.4044.69/chromedriver_mac64.zip

2 단계 :에 chromedriver 추가 /usr/local/bin

unzip chromedriver_mac64.zip
cp chromedriver /usr/local/bin

이제 달릴 수 있어야합니다

from selenium import webdriver

browser = webdriver.Chrome()
browser.get('http://localhost:8000')

문제없이


그가 Windows를 사용하고 있다고 분명히 말했으며, 이것은 Linux 용입니다.
— misantroop

1
@misantroop 나는 이것을 명확히하기 위해 대답을 업데이트했습니다.
— Giorgos Myrianthous

2

chromedriver의 압축을 풀 때 나중에 추적 할 수 있도록 정확한 위치를 지정하십시오. 아래에서 OS에 적합한 크롬 드라이버를 얻은 다음 정확한 위치로 압축을 풀고 나중에 코드에서 인수로 제공 할 수 있습니다.

wget http://chromedriver.storage.googleapis.com/2.10/chromedriver_linux64.zip unzip chromedriver_linux64.zip -d /home/virtualenv/python2.7.9/


3
또는 /usr/local/bin/전 세계적으로 설치하십시오.
— Jeppe

2

로봇 프레임 워크 RIDE로 작업하는 경우. 그런 다음 Chromedriver.exe공식 웹 사이트에서 다운로드 하여이 .exe 파일을 C:\Python27\Scripts디렉토리에 보관할 수 있습니다 . 이제이 경로를 환경 변수로 언급하십시오. C:\Python27\Scripts\chromedriver.exe.

컴퓨터를 다시 시작하고 동일한 테스트 사례를 다시 실행하십시오. 이 문제는 다시 발생하지 않습니다.


2

지시 에 따르면 , 당신은 ChromeDriver의 경로를 포함 할 필요가있을 때 인스턴스화 webdriver.Chrome 예 :

driver = webdriver.Chrome('/path/to/chromedriver')

해당 지시 사항을 오른쪽으로 스크롤하면 "선택적 인수, 지정되지 않은 경우 경로를 검색합니다"라는 주석이 있습니다. 그러나 적어도 일부 버전의 웹 드라이버는 경로에서 찾은 chromedriver를 확인하는 것으로 보이며 그것이 행복하지 않으면 (잘못된 버전 등) 사용하지 않습니다 (이 매개 변수를 설정하여 강제로 시도하지 않는 한). 더 나은 버전을 찾기 위해 계속 경로를 찾은 다음 찾을 수 없으면 불평합니다. ( "크롬 드라이버를 찾을 수 없음"보다 "크롬 드라이버를 찾지 못했습니다"라는 메시지가 더 좋을 것입니다.)
— Silas S. Brown

2

chromedriver를 경로에 추가하기 전에 브라우저와 동일한 버전인지 확인하십시오.

그렇지 않은 경우 크롬 업데이트 / 다운 그레이드 및 웹 드라이버 업그레이드 / 다운 그레이드 버전과 일치해야합니다.

크롬 버전을 최대한 업데이트하고 웹 드라이버를 일치시키는 것이 좋습니다.

크롬을 업데이트하려면

  • 오른쪽 상단에서 세 개의 점을 클릭하십시오.
  • 클릭 help->About Google Chrome
  • 버전을 업데이트하고 크롬을 다시 시작하십시오.

그런 다음 http://chromedriver.chromium.org/downloads 에서 호환되는 버전을 다운로드 하십시오 .

참고 : 최신 Chromedriver가 항상 최신 Chrome 버전과 일치하지는 않습니다.

이제 PATH에 추가 할 수 있습니다 :

  1. 컴퓨터 어딘가에 웹 폴더를 배치 할 새 폴더를 만듭니다. 나는라는 폴더 생성 webdrivers에를C:\Program Files

  2. 폴더 경로를 복사하십시오. 내 경우에는C:\Program Files\webdrivers

  3. 마우스 오른쪽 버튼으로 클릭 this PC-> properties:

여기에 이미지 설명을 입력하십시오

  1. 오른쪽 클릭 Advanced System settings
  2. 딸깍 하는 소리 Environment Variables
  3. 에서 System variables를 클릭하십시오path 하고edit
  4. 딸깍 하는 소리 new
  5. 복사 한 경로를 붙여 넣기
  6. 모든 창에서 확인을 클릭하십시오

그게 다야! 나는 pycharm을 사용했고 그것을 다시 열어야했습니다. 다른 IDE 또는 터미널과 동일 할 수도 있습니다.


1

PATH가 올바르게 설정되어 있는지 확인한 후 컴퓨터가 작동하지 않으면 컴퓨터를 다시 시작할 수 있습니다.

Windows 7의 경우 항상 WebDriverException : 메시지 : chromedriver, gecodriver, IEDriverServer에 대한 오류가 발생했습니다. 나는 올바른 경로를 가지고 있다고 확신합니다. 컴퓨터를 다시 시작하십시오. 모든 작업


1

가장 좋은 방법은 다음과 같습니다.

chromedriver를 다운로드하고 압축을 풀고 C : \ Python27 \ Scripts에 'chromedriver.exe'를 넣으면 드라이버 경로를 제공 할 필요가 없습니다.

driver= webdriver.Chrome()

경로 나 다른 것을 추가 할 필요가 없습니다


0

내 경우에는 chromedriver 파일을 c : \ Windows 폴더로 복사하면이 오류가 사라집니다. Windows 디렉토리가 python 스크립트가 chromedriver 가용성을 확인하는 경로에 있기 때문입니다.


0

원격 인터프리터를 사용하는 경우 실행 가능한 PATH가 정의되어 있는지 확인해야합니다. 필자의 경우 원격 Docker 인터프리터에서 로컬 인터프리터로 전환하면 문제가 해결되었습니다.


0

나는 당신과 같은 문제가 발생했습니다. PyCharm을 사용하여 프로그램을 작성하고 있는데 문제는 OS가 아닌 PyCharm의 환경 설정에 있다고 생각합니다. 스크립트 구성으로 이동 한 다음 환경 변수에서 PATH를 수동으로 편집하여 문제를 해결했습니다. 도움이 되길 바랍니다.


또 다른 옵션은 chromedriver를 / usr / local / bin으로 직접 옮기는 것입니다. 그러면 경로를 전혀 추가하지 않아도됩니다.
— sia1998


0

가장 좋은 방법은 현재 디렉토리를 가져 와서 나머지 주소를 추가하는 것입니다. 이 코드와 같이 (Windows의 단어. Linux에서는 pwd 줄을 사용할 수 있습니다) : webdriveraddress = str(os.popen("cd").read().replace("\n", ''))+'\path\to\webdriver'


0

chromedriver.exe를 다운로드했을 때 PATH 폴더 C : \ Windows \ System32 \ chromedriver.exe로 옮기면 정확히 같은 문제가있었습니다.

나에게 해결책은 PATH의 폴더를 변경하는 것이므로 PATH에있는 Pycharm Community bin 폴더로 옮겼습니다. 전의:

  • C : \ Windows \ System32 \ chromedriver.exe-> 예외를주었습니다.
  • C : \ Program Files \ JetBrains \ PyCharm Community Edition 2019.1.3 \ bin \ chromedriver.exe-> 제대로 작동

0

로봇 테스트 프레임 워크 및 Chrome 77을 실행하는 Mac Mojave에서이 문제가 발생했습니다. 문제가 해결되었습니다. 올바른 길을 알려준 @Navarasu 님.

$ pip install webdriver-manager --user # install webdriver-manager lib for python
$ python # open python prompt

다음으로, 파이썬 프롬프트에서 :

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())

# ctrl+d to exit

다음과 같은 오류가 발생합니다.

Checking for mac64 chromedriver:xx.x.xxxx.xx in cache
There is no cached driver. Downloading new one...
Trying to download new driver from http://chromedriver.storage.googleapis.com/xx.x.xxxx.xx/chromedriver_mac64.zip
...
TypeError: makedirs() got an unexpected keyword argument 'exist_ok'
  • 이제 최신 다운로드 링크를 받았습니다
    • chromedriver를 원하는 위치에 다운로드하여 압축을 풉니 다
    • 예를 들면 다음과 같습니다. ~/chromedriver/chromedriver

~/.bash_profile편집기로 열고 다음 을 추가하십시오.

export PATH="$HOME/chromedriver:$PATH"

새 터미널 창 열기, ta-da 🎉


0

Webdriver 3.8.0 (Chrome 73.0.3683.103 및 ChromeDriver 73.0.3683.68)에서이 문제가 발생했습니다. 내가 한 후에 문제가 사라졌다

pip install -U selenium

Webdriver를 3.14.1로 업그레이드합니다.


0

크롬 드라이버의 경로를 확인하십시오. 드라이버 위치를 코드에 붙여 넣기 만하면됩니다.


-3

(Mac 사용자의 경우) 동일한 문제가 있지만이 간단한 방법으로 해결했습니다. chromedriver.exe를 실행 된 스크립트와 동일한 폴더에 넣고 pyhton 보다이 지침을 작성해야합니다.

수입 OS

os.environ [ "PATH"] + = os.pathsep + r'X : / your / folder / script / '


2
제안하는 솔루션은 다른 사용자의 솔루션과 동일합니다. 게시하기 전에 다른 답변에주의하십시오.
— Nikita Kniazev

@walid_data가 Windows 전용 문제 일 수 있다고 지적하지 않습니까?
— benc
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.