त्रुटि संदेश: "पथ में '' क्रोमेड्राइवर 'निष्पादन योग्य उपलब्ध होना चाहिए"


171

मैं अजगर के साथ सेलेनियम का उपयोग कर रहा हूं और इस साइट से अपने विंडोज़ कंप्यूटर के लिए क्रोमेड्रिवर डाउनलोड किया है: http://chromedriver.storage.googleapis.com/index.html?path=2.15/

ज़िप फ़ाइल को डाउनलोड करने के बाद, मैंने ज़िप फ़ाइल को अपने डाउनलोड फ़ोल्डर में अनपैक कर दिया। फिर मैंने निष्पादन योग्य बाइनरी (C: \ Users \ michael \ download \ 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

लेकिन - जैसा कि ऊपर बताया गया है - पथ में निष्पादन योग्य (!) है ... यहाँ क्या चल रहा है?


19
chromedriver.exeअपने पायथन स्क्रिप्ट के समान निर्देशिका में कॉपी करने का प्रयास करें ।
मलिक ब्राहिमी

4
के माध्यम से स्थापित कर रहा है Chocolatey , पथ में जोड़ देगा choco install chromedriver
WhatIsHeDoing 15

उपयोगकर्ता के लिए pycharm में इस समस्या का सामना करना पड़ा, पुनरारंभ यह हल करेगा
चार्ल्स चाउ

मैं ImNt के जवाब से सहमत हूं। हालांकि मैं यह जोड़ना चाहूंगा कि जो लोग virtualenv का उपयोग कर रहे हैं, आपको निम्न उदाहरण प्रारूप का उपयोग करके प्रशासक के रूप में अपनी venv फ़ाइल में अजगर चलाना चाहिए: ड्राइवर = webdriver.Chrome (r'C: / Users / michael / डाउनलोड / chromedriver_win32 /chromedriver.exe ')
Pineda

@MalikBrahimi मैं इस समाधान को हर जगह खोज रहा हूं और उनमें से कोई भी वास्तव में तब तक काम नहीं करता जब तक मुझे आपकी टिप्पणी नहीं मिली। बहुत बहुत धन्यवाद
user2720864

जवाबों:


178

यदि आप वास्तव में PATH में हैं, तो आप परीक्षण कर सकते हैं, यदि आप एक cmd खोलते हैं और टाइप करते हैं chromedriver(अपने क्रोमेड्राइवर को निष्पादन योग्य अभी भी इस तरह नाम दिया गया है) और Enter दबाएं। यदि Starting ChromeDriver 2.15.322448दिखाई दे रहा है, तो PATH उचित रूप से सेट है और कुछ और गलत हो रहा है।

वैकल्पिक रूप से आप इस तरह से क्रोमेड्राइवर के लिए एक सीधा रास्ता उपयोग कर सकते हैं:

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

तो अपने विशिष्ट मामले में:

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

3
जवाब के लिए धन्यवाद: "ChromeDriver को शुरू करना 2.15.322448" दिखाई दिया। "केवल स्थानीय कनेक्शन की अनुमति है।" भी दिखाई दिया। ... लेकिन मुझे लगता है कि यह ठीक है? .... एक बात जो मैं सोच रहा था वह यह है: वेबसाइट पर क्रोमेड्रिवर का केवल 32 बिट संस्करण उपलब्ध था .... लेकिन यह मेरी 64 बिट विंडो के साथ ठीक काम करना चाहिए, है न?
स्थिर_प्रक्रिया

@steady_progress हाँ, यह ठीक है। और यह 64 बिट विंडोज के साथ काम करेगा; मैं खुद इसका इस्तेमाल कर रहा हूं। मुझे संदेह है कि शायद सेलेनियम संस्करण समस्या का कारण हो सकता है? आपने कौन सा स्थापित किया है? क्या आपने इसका उपयोग करके स्थापित किया है pip?
lmNt

क्या आपने वेबड्राइवर को कॉल करते हुए ड्राइवर को सीधे रास्ते का उपयोग करने की कोशिश की है जैसा कि मैंने उत्तर में बताया है? क्या यह उसी त्रुटि के साथ विफल हो गया?
lmNt

4
अपने PATH में वेबड्राइवर्स को शामिल करते समय, कोई फर्क नहीं पड़ता ओएस, केवल वही निर्देशिका शामिल करें जहां आपका वेबड्राइवर संग्रहीत है, निष्पादन योग्य नहीं है। उदाहरण: PATH = $ PATH: / path / to / webdriver / folder, not PATH = $ PATH: / path / to / webdriver / chromedriver। इसके अतिरिक्त, PATH का उपयोग आपके webdriver.Chrome () कॉल में स्थान पास करने की तुलना में बहुत अधिक पोर्टेबल है, क्योंकि हम हमेशा यह मान सकते हैं कि जहां भी आपका कोड चलाया जाता है, वहां PATH को सही ढंग से सेट किया गया है, लेकिन हम यह नहीं मान सकते कि उनकी फ़ाइल संरचना पहचान के साथ सेट की गई है ।
aphid

2
एक ही समाधान का उपयोग करने की कोशिश की, लेकिन यह त्रुटि हो रही है: WebDriverException: संदेश: 'chromedriver.exe' निष्पादन योग्य गलत अनुमतियाँ हो सकती हैं। कृपया साइटें
योगेश

151

मुझे लगता है कि अभी भी चर्चाएं द्विआधारी डाउनलोड करने और मैन्युअल रूप से पथ को कॉन्फ़िगर करके क्रोमेड्रिवर स्थापित करने के पुराने तरीके के बारे में बात करती हैं।

यह वेबड्राइवर-मैनेजर का उपयोग करके स्वचालित रूप से किया जा सकता है

pip install webdriver-manager

अब प्रश्न में उपरोक्त कोड नीचे परिवर्तन के साथ काम करेगा,

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

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

इसका उपयोग फ़ायरफ़ॉक्स, एज और बायनेरिज़ सेट करने के लिए किया जा सकता है।


@ नवरसु पूरे सम्मान के साथ क्यों कोई 3.6 से कुछ का पालन करेगा जब वर्तमान 3.7 है। अगली बार यह स्पष्ट रूप से कहना अच्छा होगा कि यह 3.6 के लिए है .... धन्यवाद
अज़ी सेर

5
यह बहुत बढ़िया है क्योंकि यह बहुत पुराना है
लेस्ली एल्ल्ड्रिज

1
इस समाधान के बारे में अच्छी बात यह है कि इसमें विशिष्ट पथ सेटअप के आधार पर अन्य समाधानों की तुलना में अधिक लचीलापन है, जिसे मैं कई मशीनों पर स्क्रिप्ट का उपयोग करने के मामले में अव्यवहारिक देखता हूं।
आईबीआरएचआईएम

14

Pycharm समुदाय संस्करण के साथ एक ही स्थिति, इसलिए, cmd के लिए, आपको पथ चर को फिर से लोड करने के लिए अपनी विचारधारा को फिर से शुरू करना होगा। अपनी विचारधारा को फिर से शुरू करें और यह ठीक होना चाहिए।


2
धन्यवाद। मुझे विजुअल स्टूडियो में भी यही समस्या थी। बस आईडीई को फिर से शुरू किया और यह काम किया :) धन्यवाद
डॉलरअक्षय

मेरे लिए भी काम किया।
कार्टोस

13

लिनक्स पर (उबंटू या डेबियन):

sudo apt install chromium-chromedriver

MacOS पर https://brew.sh/ तब करें

brew cask install chromedriver

फिर उपयोग करें: ड्राइवर = webdriver.Chrome ('/ usr / lib / क्रोमियम-ब्राउज़र / क्रोमेड्रिवर') .. जिससे $ PATH बदल रहा है
कीमिया

@alchemy क्या आप वाकई ऐसा करना चाहते हैं? जैसा कि मुझे याद है, driver = webdriver.Chrome()मेरे लिए ठीक काम किया।
बोरिस

हाय बोरिस, हाँ, यकीन नहीं क्यों .. पाथ में जोड़ने के बाद भी यह उसके बिना काम नहीं किया। मुझे यकीन है कि रास्ता सही ढंग से स्थापित करना बेहतर होगा, लेकिन मुझे बस क्रोमेड्रिवर के साथ एक काम करने की ज़रूरत है
कीमिया

9

हमें पथ स्ट्रिंग जोड़ना होगा, स्ट्रिंग rसे पहले पत्र के साथ शुरू करना होगा , कच्चे स्ट्रिंग के लिए। मैंने इस तरह से परीक्षण किया, और यह काम करता है।

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

3

इस सूत्र के भविष्य के पाठकों के लिए कुछ अतिरिक्त इनपुट / स्पष्टीकरण, पैठ एनव के साथ छेड़छाड़ से बचने के लिए। विंडोज स्तर पर चर और विंडोज सिस्टम को पुनः आरंभ करें: ( https://stackoverflow.com/a/49851498/9083077 से क्रोम पर लागू) के रूप में मेरे उत्तर की प्रतिलिपि :

(1) क्रोमेड्राइवर डाउनलोड करें (जैसा कि पहले इस धागे में बताया गया है) और (unzipped) chromedriver.exe को X: \ Folder \ of \ your की पसंद पर रखें

(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) नमूना कोड (संदर्भित उत्तर में) के लिए निर्दिष्ट न्यूनतम टीएल के लिए फ़ायरफ़ॉक्स ब्राउज़र को खोलने में लगभग 5 सेकंड लग सकते हैं। (2) अजगर कंसोल निम्नलिखित त्रुटि दिखाएगा यदि कोई सर्वर पहले से ही निर्दिष्ट यूआरएल पर नहीं चल रहा है या स्ट्रिंग 'Django' शीर्षक के साथ एक पृष्ठ पर काम कर रहा है: ब्राउज़र में 'Django' दर्ज करें। AssertionError


3

लिनक्स और OSX के लिए

चरण 1: क्रोमेड्राइवर डाउनलोड करें

# 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: क्रोमेड्रिवर को इसमें जोड़ें /usr/local/bin

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

अब आपको दौड़ने में सक्षम होना चाहिए

from selenium import webdriver

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

बिना किसी मुद्दे के


स्पष्ट रूप से कहा गया था कि वह विंडोज का उपयोग कर रहा है, यह लिनक्स के लिए है।
अपराह्न

1
@misantroop मैंने इसे स्पष्ट करने के लिए अपना उत्तर अपडेट कर दिया है।
जियोर्जोस मायिरिंथस

2

जब आप क्रोमेड्राइवर खोलते हैं, तो कृपया एक सटीक स्थान निर्दिष्ट करें ताकि आप इसे बाद में ट्रेस कर सकें। नीचे, आपको अपने ओएस के लिए सही क्रोमेड्राइवर मिल रहा है, और फिर इसे एक सटीक स्थान पर खोलना है, जिसे आपके कोड में बाद में तर्क के रूप में प्रदान किया जा सकता है।

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/विश्व स्तर पर स्थापित करने के लिए।
जेपी

2

यदि आप रोबोट फ्रेमवर्क RIDE के साथ काम कर रहे हैं। फिर आप Chromedriver.exeइसकी आधिकारिक वेबसाइट से डाउनलोड कर सकते हैं और इस .exe फ़ाइल को C:\Python27\Scriptsनिर्देशिका में रख सकते हैं । अब अपने पर्यावरण चर जैसे इस पथ का उल्लेख करें। C:\Python27\Scripts\chromedriver.exe

अपने कंप्यूटर को पुनरारंभ करें और एक ही टेस्ट केस फिर से चलाएं। आपको यह समस्या दोबारा नहीं आएगी।


2

निर्देश के अनुसार , जब आपको webdriver.Chrome को इंस्टेंट करना है, तो आपको ChromeDriver के लिए पथ को शामिल करना होगा:

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

यदि आप उन निर्देशों को दाईं ओर स्क्रॉल करते हैं, तो एक टिप्पणी है "वैकल्पिक तर्क, यदि निर्दिष्ट नहीं है तो खोज पथ होगा।" लेकिन वेबड्राइवर के कम से कम कुछ संस्करण किसी भी क्रोमेड्राइवर की जांच करते हैं जो वे रास्ते में पाते हैं और यदि वह इसके साथ 'खुश' नहीं है (गलत संस्करण आदि) तो वह इसका उपयोग नहीं करेगा (जब तक कि इस पैरामीटर को सेट करके किसी भी तरह से प्रयास करने के लिए मजबूर न किया जाए)। यह एक बेहतर संस्करण के लिए रास्ता खोजता रहेगा, फिर अगर यह एक नहीं मिल रहा है तो शिकायत करें। ("कोई उपयुक्त क्रोमेड्रिवर नहीं मिला" "कोई क्रोमेड्रिवर नहीं मिला" की तुलना में एक बेहतर संदेश होगा।)
एस। ब्राउन

2

इससे पहले कि आप क्रोमेड्रिवर को अपने पथ पर जोड़ें, सुनिश्चित करें कि यह आपके ब्राउज़र के समान संस्करण है।

यदि नहीं, तो आपको संस्करणों से मेल खाना होगा: या तो आप क्रोम को अपडेट / डाउनग्रेड करें, और अपने वेबड्राइवर को अपग्रेड / डाउनग्रेड करें।

मैं आपके क्रोम संस्करण को यथासंभव अपडेट करने और वेबड्राइवर से मिलान करने की सलाह देता हूं।

क्रोम अपडेट करने के लिए:

  • ऊपरी दाएं कोने पर, तीन बिंदुओं पर क्लिक करें।
  • क्लिक करें help->About Google Chrome
  • संस्करण को अपडेट करें और क्रोम को पुनरारंभ करें

फिर यहां से संगत संस्करण डाउनलोड करें: http://chromedriver.chromium.org/downloads

नोट: नवीनतम क्रोमेड्राइवर हमेशा क्रोम के नवीनतम संस्करण से मेल नहीं खाता है!

अब आप इसे 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 का इस्तेमाल किया और मुझे इसे फिर से खोलना पड़ा। हो सकता है कि अन्य आईडीई या टर्मिनलों के साथ भी ऐसा ही हो।


1

कंप्यूटर को पुनः आरंभ करने की कोशिश कर सकता है अगर यह काम नहीं करता है, तो आप सुनिश्चित हैं कि पैथ सही ढंग से सेट है।

विंडोज 7 पर मेरे मामले में, मुझे हमेशा WebDriverException: Message: chromedriver, gecodriver, IEDriverServer के लिए त्रुटि मिली। मुझे पूरा यकीन है कि मेरे पास सही रास्ता है। कंप्यूटर को पुनरारंभ करें, सभी काम करते हैं


1

सुनिश्चित करने के लिए सबसे अच्छा तरीका यहाँ है:

क्रोमेड्राइवर को डाउनलोड और अनज़िप करें और C: \ Python27 \ Scripts में 'chromedriver.exe' डालें और फिर आपको ड्राइवर का मार्ग प्रदान करने की आवश्यकता नहीं है, बस

driver= webdriver.Chrome()

आपको पथ या कुछ भी जोड़ने की आवश्यकता नहीं है


0

मेरे मामले में, यह त्रुटि गायब हो जाती है जब मैंने क्रोमेड्राइवर फ़ाइल को c: \ Windows फ़ोल्डर में कॉपी किया है। इसका कारण यह है कि विंडोज़ निर्देशिका उस पथ में है जो क्रोमेड्रिवर उपलब्धता के लिए पाइथन लिपि की जाँच करता है।


0

यदि आप दूरस्थ दुभाषिया का उपयोग कर रहे हैं तो आपको यह भी जांचना होगा कि इसका निष्पादन योग्य पथ परिभाषित है या नहीं। मेरे मामले में दूरस्थ डॉकटर दुभाषिया से स्थानीय दुभाषिया पर स्विच करने से समस्या हल हो गई।


0

मुझे तुम्हारी जैसी ही समस्या का सामना करना पड़ा। मैं प्रोग्राम लिखने के लिए PyCharm का उपयोग कर रहा हूं, और मुझे लगता है कि समस्या OS के बजाय PyCharm में पर्यावरण सेटअप में निहित है। मैंने स्क्रिप्ट कॉन्फ़िगरेशन पर जाकर और फिर पैठ को पर्यावरण चर में मैन्युअल रूप से संपादित करके समस्या को हल किया। यह आपको उपयोगी लगने की आशा है!


एक अन्य विकल्प यह है कि आप अपने क्रोमेड्राइवर को सीधे / usr / लोकल / बिन पर ले जाएं, फिर आप बिल्कुल भी परेशान न हों
sia1998


0

सबसे अच्छा तरीका शायद वर्तमान निर्देशिका प्राप्त करना है और शेष पते को इसमें संलग्न करना है। इस कोड की तरह (विंडोज़ पर वर्ड। लिनक्स पर आप कुछ लाइन pwd का उपयोग कर सकते हैं): webdriveraddress = str(os.popen("cd").read().replace("\n", ''))+'\path\to\webdriver'


0

जब मैंने chromedriver.exe डाउनलोड किया है तो मैं इसे केवल PATH फ़ोल्डर C: \ Windows \ System32 \ chromedriver.exe में ले जाता हूं और ठीक यही समस्या थी।

मेरे लिए समाधान केवल PATH में फ़ोल्डर को बदलना था, इसलिए मैंने इसे Pycharm समुदाय बिन फ़ोल्डर में स्थानांतरित कर दिया जो PATH में भी था। उदाहरण के लिए:

  • C: \ Windows \ System32 \ chromedriver.exe -> मुझे अपवाद दिया
  • C: \ Program Files \ JetBrains \ PyCharm सामुदायिक संस्करण 2019.1.3 \ bin \ chromedriver.exe -> ठीक है

0

इस मुद्दे को मैक मोजवे ने रोबोट टेस्ट फ्रेमवर्क और क्रोम 77 के साथ चलाया। इस समस्या को हल किया। मुझे सही रास्ते की ओर इशारा करने के लिए कुडोस @ नवरसु।

$ 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

~/.bash_profileसंपादक के साथ खोलें और जोड़ें:

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

नई टर्मिनल विंडो खोलें, टा-डा ta


0

मुझे वेबड्राइवर 3.8.0 (क्रोम 73.0.3683.103 और क्रोमड्राइव 73.0.3683.63 क्रोम) पर यह समस्या थी। मेरे करने के बाद समस्या गायब हो गई

pip install -U selenium

3.14.1 को वेबड्राइवर को अपग्रेड करने के लिए।


0

अपने क्रोम चालक के पथ की जाँच करें, यह वहाँ से नहीं मिल सकता है। बस कोड को ड्राइवर स्थान पर कॉपी पेस्ट करें।


-3

(मैक उपयोगकर्ताओं के लिए) मेरे पास एक ही समस्या है लेकिन मैं इस सरल तरीके से हल करता हूं: आपको अपने क्रोमेड्राइवर। exe को उसी फ़ोल्डर में अपनी निष्पादित स्क्रिप्ट पर रखना होगा और pyhton की तुलना में यह निर्देश लिखना होगा:

आयात os

os.environ ["पथ"] + = os.pathsep + r'X: / आपका / फ़ोल्डर / स्क्रिप्ट / '


2
आप जो समाधान पेश कर रहे हैं, वह अन्य उपयोगकर्ता के समान ही है। कृपया पोस्ट करने से पहले अन्य उत्तरों पर ध्यान दें।
निकिता नाइज़ेव

क्या @walid_data यह कहना नहीं चाहता है कि यह केवल एक समस्या है?
बेन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.