Hata mesajı: “Yolda '' chromedriver 'çalıştırılabilir olması gerekiyor”


172

Python ile selenyum kullanıyorum ve bu bilgisayardan Windows bilgisayarım için krom tornavida indirdim: http://chromedriver.storage.googleapis.com/index.html?path=2.15/

Zip dosyasını indirdikten sonra, zip dosyasını indirilenler klasörüne açtım. Sonra çalıştırılabilir ikili (C: \ Users \ michael \ Downloads \ chromedriver_win32) yolu Ortam Değişkeni "Yol" içine koymak.

Ancak, aşağıdaki kodu çalıştırdığınızda:

  from selenium import webdriver

  driver = webdriver.Chrome()

... aşağıdaki hata mesajını almaya devam ediyorum:

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

Ancak - yukarıda açıklandığı gibi - çalıştırılabilir dosya (!) Yolunda ... burada neler oluyor?


20
chromedriver.exePython betiğinizle aynı dizine kopyalamayı deneyin .
Malik Brahimi

4
Chocolatey ile kurmak onu yola ekleyecektir choco install chromedriver.
WhatIsHeDoing

kullanıcı pycharm'da bu sorunla karşılaştı, yeniden başlatma sorunu çözecektir
Charles Chow

ImNt'ın cevabına katılıyorum. Bunu virtualenv kullananlara eklemek istesem de, aşağıdaki örnek formatı kullanarak venv dosyanızda python'u Yönetici olarak çalıştırmalısınız: driver = webdriver.Chrome (r'C: / Users / michael / Downloads / chromedriver_win32 /chromedriver.exe ')
Pineda

@MalikBrahimi Bu çözümü her yerde aradım ve yorumunuzu bulana kadar hiçbiri gerçekten işe yaramadı. Çok teşekkürler
user2720864

Yanıtlar:


179

Bir cmd açarsanız ve chromedriver(kromofon çalıştırıcınızın hala bu şekilde adlandırıldığını varsayarak) yazar ve Enter tuşuna basarsanız, gerçekten PATH'de olup olmadığını test edebilirsiniz . EğerStarting ChromeDriver 2.15.322448 görünüyorsa, YOLU uygun şekilde ayarlanmış ve yanlış gidiyor başka bir şey yoktur.

Alternatif olarak, krom sürücüye giden doğrudan bir yolu şu şekilde kullanabilirsiniz:

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

Yani özel durumunuzda:

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

3
Cevabınız için teşekkür ederiz: "ChromeDriver 2.15.322448 Başlatılıyor" mesajı görüntülendi. "Yalnızca yerel bağlantılara izin verilir." de ortaya çıktı. ... Ama sanırım bu iyi mi? .... Merak ettiğim bir şey şuydu: Web sitesinde sadece 32bit chromeriver sürümü mevcuttu .... ama bu benim 64bit pencereler ile iyi çalışmalı, değil mi?
steady_progress

@steady_progress Evet, sorun değil. Ve bu 64bit Windows ile çalışacaktır; Kendim kullanıyorum. Selenyum sürümünün soruna neden olabileceğinden şüpheleniyorum? Hangisini yüklediniz? Kullanarak yüklediniz mi pip?
lmNt

Yanıtta bahsettiğim gibi webdriver'ı çağırırken sürücünün doğrudan yolunu kullanmayı denediniz mi? Aynı hatayla başarısız oldu mu?
lmNt

4
İşletim sisteminiz ne olursa olsun PATH'nize web sürücüleri eklerken yürütülebilir dosyayı değil, yalnızca web sürücünüzün bulunduğu dizini ekleyin. Örnek: PATH = $ PATH: / path / to / webdriver / folder, PATH = $ PATH: / path / to / webdriver / chromedriver. Ayrıca, PATH kullanmak, konumu webdriver.Chrome () çağrınıza geçirmekten çok daha taşınabilirdir, çünkü PATH kodunuzun çalıştığı her yerde doğru bir şekilde ayarlandığını varsayabiliriz, ancak dosya yapılarının aynı şekilde kurulduğunu varsayamayız .
Yaprak biti

2
aynı çözümü kullanmaya çalıştım ama bu hatayı alıyorum: WebDriverException: İleti: 'chromedriver.exe' yürütülebilir dosyası yanlış izinlere sahip olabilir. Lütfen sites.google.com/a/chromium.org/chromedriver/home
Yogesh

152

Tartışmaları hala ikili dosyayı indirerek ve yolu manuel olarak yapılandırarak, kromofonu kurmanın eski yönteminden bahsettiğini görüyorum.

Bu, webdriver-manager kullanılarak otomatik olarak yapılabilir

pip install webdriver-manager

Şimdi sorudaki yukarıdaki kod sadece aşağıdaki değişiklikle çalışacaktır,

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

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

Aynı şey Firefox, Edge ve diğer ikili dosyaları ayarlamak için de kullanılabilir.


@Navarasu tüm saygıyla, akım 3.7 olduğunda neden 3.6'dan bir şey izlesin ki. Bir dahaki sefere açıkça 3.6 için olduğunu söylemek güzel olurdu .... Teşekkürler
Azy Sır

5
çok güncel kaldığı için bu harika
Leslie Alldridge

1
Bu çözüm hakkında iyi bir şey, betiği birden fazla makinede kullanma açısından pratik olmayan belirli yol kurulumuna dayanan diğer çözümlere göre daha fazla esnekliğe sahip olmasıdır.
IBRAHIM

14

Pycharm topluluk sürümü ile aynı durumdur, bu nedenle cmd'de olduğu gibi, yol değişkenlerini yeniden yüklemek için ide'nizi yeniden başlatmanız gerekir. IDE'nizi yeniden başlatın ve iyi olmalı.


2
Teşekkürler. Aynı sorunu Visual Studios'ta da yaşadım.
IDE'yi

Benim için de çalıştı.
CARTOS

13

Linux'ta (Ubuntu veya Debian):

sudo apt install chromium-chromedriver

Yükleme MacOS üzerinde https://brew.sh/ sonra do

brew cask install chromedriver

Sonra kullanın: driver = webdriver.Chrome ('/ usr / lib / chromium browser / chromedriver') .. $ PATH değiştirmeden
simya

@alchemy Bunu yapmanız gerektiğinden emin misiniz? Hatırladığım gibi, driver = webdriver.Chrome()benim için iyi çalıştı.
Boris

Merhaba Boris, evet, neden emin değilim ... PATH ekledikten sonra bile o olmadan işe yaramadı. Yolun doğru şekilde ayarlanmasının daha iyi olacağından eminim, ancak Chromedriver ile hızlıca bir şey yapmam gerekiyor
simya

9

rHam dize için yol dizesi eklemeliyiz, dizeden önceki harfle başlamalıyız . Bu şekilde test ettim ve işe yarıyor.

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

3

Bu konunun gelecekteki okuyucuları için PATH env. Windows düzeyinde bir değişken ve Windows sisteminin yeniden başlatılması: (cevabımın https://stackoverflow.com/a/49851498/9083077 adresinden kopyası Chrome için geçerli olan ):

(1) Chrome sürücüyü indirin (daha önce bu başlıkta açıklandığı gibi) ve (sıkıştırılmamış) chromedriver.exe dosyasını \ seçim \ seçiminizin X: \ Klasör \

(2) Python kodu örneği:

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

Notlar: (1) Örnek kodun (başvurulan cevapta) belirtilen url için Firefox tarayıcısını açması yaklaşık 5 saniye sürebilir. (2) Belirtilen url'de zaten çalışan bir sunucu yoksa veya 'Django' dizesini içeren bir sayfa sunan bir sunucu yoksa python konsolu aşağıdaki hatayı gösterir: browser.title AssertionError


3

Linux ve OSX için

Adım 1: Krom tornavida indirin

# 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. Adım: /usr/local/bin

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

Artık koşabilmelisin

from selenium import webdriver

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

sorunsuz


Windows kullandığı açıkça belirtildi, bu Linux için.
misantroop

1
@misantroop Bunu netleştirmek için cevabımı güncelledim.
Giorgos Myrianthous

2

Krom sürücüyü açarken, daha sonra izleyebilmek için lütfen tam bir konum belirtin. Aşağıda, işletim sisteminiz için doğru krom sürücüyü alıyorsunuz ve daha sonra kodunuzda daha sonra argüman olarak sağlanabilecek tam bir konuma açıyorsunuz.

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


3
Veya /usr/local/bin/global olarak yüklemek için.
Jeppe

2

RIDE robot çerçevesi ile çalışıyorsanız. Sonra Chromedriver.exeresmi web sitesinden indirebilir ve bu .exe dosyasını C:\Python27\Scriptsdizinde tutabilirsiniz . Şimdi bu yolu ortam değişkeniniz olarak belirtin örn.C:\Python27\Scripts\chromedriver.exe.

Bilgisayarınızı yeniden başlatın ve aynı test senaryosunu tekrar çalıştırın. Bu sorunu bir daha almayacaksınız.


2

Talimatlara göre , webdriver'ı başlatırken ChromeDriver yolunu eklemeniz gerekir.

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

Bu talimatları sağa kaydırırsanız, "İsteğe bağlı bağımsız değişken, belirtilmezse yolu arayacaktır" yazan bir yorum vardır. Ancak en azından webdriver'ın bazı sürümleri, yolda buldukları herhangi bir krom sürücüyü kontrol ediyor gibi görünüyor ve onunla 'mutlu' değilse (yanlış sürüm vb.) Kullanmayacak (bu parametreyi ayarlayarak yine de denemeye zorlanmadığı sürece). Daha iyi bir sürüm için yol aramaya devam edecek, sonra bulamazsa şikayet edecektir. ("Uygun bir kromofon bulunamadı", "kromofon bulunamadı" dan daha iyi bir mesaj olurdu.)
Silas S. Brown

2

Krom sürücüyü yolunuza eklemeden önce, tarayıcınızla aynı sürüm olduğundan emin olun.

Değilse, sürümleri eşleştirmeniz gerekir: kromunuzu güncelleyin / düşürün ve web sürücünüzü yükseltin / düşürün.

Chrome sürümünüzü olabildiğince güncellemenizi ve web sürücüsünü eşleştirmenizi öneririz.

Chrome'u güncellemek için:

  • Sağ üst köşedeki üç noktayı tıklayın.
  • tıklayın help->About Google Chrome
  • sürümü güncelle ve chrome'u yeniden başlat

Ardından uyumlu sürümü buradan indirin: http://chromedriver.chromium.org/downloads .

Not: En yeni krom tornavida her zaman kromun en yeni sürümüyle eşleşmez!

Şimdi PATH'e ekleyebilirsiniz:

  1. Bilgisayarınızın herhangi bir yerinde web sürücülerinizi yerleştireceğiniz yeni bir klasör oluşturun. Ben adında bir klasör oluşturdu webdriversiçindeC:\Program Files

  2. klasör yolunu kopyalayın. Benim durumumdaC:\Program Files\webdrivers

  3. sağ tıklayın this PC-> properties:

resim açıklamasını buraya girin

  1. Sağ tıklamada Advanced System settings
  2. Tıklayın Environment Variables
  3. İçinde System variables, tıklayınpath ve tıklayınedit
  4. Tıklayın new
  5. daha önce kopyaladığınız yolu yapıştırın
  6. tüm pencerelerde Tamam'ı tıklayın

Bu kadar! Pycharm kullandım ve tekrar açmak zorunda kaldım. Belki diğer IDE'ler veya terminaller için de aynıdır.


1

PATH'ın doğru ayarlandığından emin olduktan sonra çalışmazsa bilgisayarı yeniden başlatmayı deneyebiliriz.

Windows 7'deki durumumda, her zaman WebDriverException'da hata aldım: Mesaj: chromedriver, gecodriver, IEDriverServer için. Doğru yola sahip olduğumdan eminim. Bilgisayarı yeniden başlatın, tüm işler


1

Kesinlikle en iyi yol burada:

Chrome sürücüsünü indirin ve sıkıştırın ve C: \ Python27 \ Scripts içine 'chromedriver.exe' yazın ve ardından sürücü yolunu sağlamanız gerekmez.

driver= webdriver.Chrome()

Yol veya başka bir şey eklemenize gerek yok


0

Benim durumumda, chmedriver dosyasını c: \ Windows klasörüne kopyaladığımda bu hata kayboluyor. Çünkü Windows dizini, kroket sürücüsünün kullanılabilirliğini kontrol eden python betiğinin yolunda olduğu için.


0

Uzaktan yorumlayıcı kullanıyorsanız, yürütülebilir PATH tanımlı olup olmadığını da kontrol etmeniz gerekir. Benim durumumda, uzak Docker yorumlayıcısından yerel yorumlayıcıya geçmek sorunu çözdü.


0

Seninle aynı problemle karşılaştım. Program yazmak için PyCharm kullanıyorum ve sorunun işletim sistemi yerine PyCharm'daki ortam kurulumunda olduğunu düşünüyorum. Komut dosyasını yapılandırmaya gidip ortam değişkenlerindeki PATH'ı manuel olarak düzenleyerek sorunu çözdüm. Umarım bunu faydalı bulursun!


başka bir seçenek, doğrudan / usr / local / bin'e krom sürücünüzü taşımaktır, o zaman hiç bir yol
eklemekle uğraşmazsınız

0

Web sürücüsünü (chromedriver.exe veya geckodriver.exe) buraya C: \ Windows ekleyin . Bu benim durumumda çalıştı


0

En iyi yol, geçerli dizini almak ve kalan adresi dizine eklemektir. Bu kod gibi (Windows'ta Word. Linux'ta bir satır pwd kullanabilirsiniz): webdriveraddress = str(os.popen("cd").read().replace("\n", ''))+'\path\to\webdriver'


0

Chromedriver.exe'yi indirdiğimde sadece PATH klasöründe hareket ediyorum: \ Windows \ System32 \ chromedriver.exe ve tam olarak aynı problem vardı.

Benim için çözüm sadece PATH klasör değiştirmek oldu, bu yüzden ben de PATH olan Pycharm Topluluk bin klasörüne taşındı. örn:

  • C: \ Windows \ System32 \ chromedriver.exe -> Bana istisna verdi
  • C: \ Program Dosyaları \ JetBrains \ PyCharm Community Edition 2019.1.3 \ bin \ chromedriver.exe -> iyi çalıştı

0

Mac Mojave'de Robot test çerçevesi ve Chrome 77 çalıştıran bu sorun vardı. Bu sorunu çözdü. Kudos @Navarasu beni doğru yola yönlendirdiği için.

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

Ardından, python isteminde:

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

# ctrl+d to exit

Bu, aşağıdaki hataya yol açar:

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'
  • Artık en yeni indirme bağlantısını aldım
    • Krom sürücüyü indirin ve istediğiniz yere çıkartın
    • Örneğin: ~/chromedriver/chromedriver

~/.bash_profileEditör ile açın ve ekleyin:

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

Yeni terminal penceresi aç, ta-da 🎉


0

Bu sorunu Webdriver 3.8.0'da (Chrome 73.0.3683.103 ve ChromeDriver 73.0.3683.68) yaşadım. Ben yaptıktan sonra sorun kayboldu

pip install -U selenium

Webdriver'ı 3.14.1'e yükseltmek.


0

Chrome sürücünüzün yolunu kontrol edin, oradan alamayabilir. Sadece sürücü konumunu koda kopyalayın.


-3

(Mac kullanıcıları için) Ben de aynı sorun var ama bu basit bir şekilde çözüldü: Sizin chromedriver.exe aynı klasöre çalıştırılan komut dosyası koymak ve pyhton daha bu talimatı yazın:

ithalat os

os.environ ["PATH"] + = os.pathsep + r'X: / klasörünüz / komut dosyanız / '


2
Önerdiğiniz çözüm diğer kullanıcılarla tamamen aynıdır. Lütfen göndermeden önce diğer cevaplara dikkat edin.
Nikita Kniazev

@Walid_data bunu sadece Windows için bir sorun olabileceğini belirtmek için söylemiyor mu?
benc
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.