web-dev-qa-db-ja.com

エラーメッセージ:「 'chromedriver'実行可能ファイルはパスで利用可能である必要があります」

私はPythonでSeleniumを使用していて、このサイトから私のwindowsコンピュータ用のchromedriverをダウンロードしました: http://chromedriver.storage.googleapis.com/index.html?path=2.15/

Zipファイルをダウンロードした後、Zipファイルをダウンロードフォルダに解凍しました。それから実行可能バイナリ(C:\ Users\michael\Downloads\chromedriver_win32)へのパスを環境変数 "Path"に入れます。

しかし、私は次のコードを実行すると:

  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

しかし、上で説明したように、実行可能ファイルは(!)のパスにあります...ここで何が起こっているのでしょうか。

102
steady_progress

実際にPATHにあるかどうかをテストすることができます。cmdを開いてchromedriverを入力して(あなたの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")
110
lmNt

私は議論がバイナリをダウンロードして手動でパスを設定することによってchromedriverを設定する古い方法についてまだ話しているのを見る。

これは webdriver-manager を使って自動的に行えます。

pip install webdriver-manager

今問題の上記のコードは以下の変更で簡単に動作します、

from Selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

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

Firefox、Edgeそしてバイナリの設定にも同じことができます

31
Navarasu

パス文字列を追加する必要があります。生の文字列の場合は、文字列の前にrという文字で始めます。私はこの方法でテストしました、そしてそれはうまくいきます。

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

Pycharm community editionと同じ状況なので、cmdに関しては、パス変数をリロードするためにはideを再起動する必要があります。あなたのアイデアを再起動し、それは大丈夫なはずです。

8
Andrea Bisello

クロームドライバーを解凍するときは、後で追跡できるように正確な場所を指定してください。以下では、あなたのOSに合った正しいドライバを入手し、それを正確な場所に解凍しています。これは後でコードとして引数として提供することができます。

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

2
Harshdeep Singh

あなたがロボットフレームワークRIDEで働いているならば。それから、あなたはその公式ウェブサイトからChromedriver.exeをダウンロードして、この.exeファイルをC:\Python27\Scriptsディレクトリに保存することができます。今、あなたの環境変数としてこのパスに言及してください。 C:\Python27\Scripts\chromedriver.exe

コンピュータを再起動して、同じテストケースをもう一度実行してください。二度とこの問題に遭遇することはないでしょう。

1
Rahul Tiwari

PATH環境でのいじりを避けるために、このスレッドの将来の読者のためのいくつかの追加の入力/説明。 Windowsレベルでの変数およびWindowsシステムの再起動:( https://stackoverflow.com/a/49851498/9083077 からの私の答えのコピー) Chromeに適用可能)

(1)chromedriverをダウンロードし(先のこのスレッドで説明したように)、(解凍した)chromedriver.exeをX:\ Folder\of\your\choiceに置きます。

(2)Pythonコードサンプル:

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コンソールは次のエラーを表示します。

1
Snidhi Sofpro

私の場合、このエラーはchromedriverファイルをc:\ Windowsフォルダにコピーしたときに消えます。それはwindowsディレクトリがpythonスクリプトがchromedriverの可用性をチェックするパスにあるからです。

0
Hamid

あなたと同じ問題に遭遇しました。私はプログラムを書くためにPyCharmを使用していますが、問題はOSではなくPyCharmの環境設定にあると思います。スクリプト構成に進み、環境変数のPATHを手動で編集することで問題を解決しました。これが役立つことを願っています!

0
sia1998

最善の方法は、現在のディレクトリを取得し、残りのアドレスを追加することです。このコードのように(Windows上のWord。Linuxでは、pwdという行を使用できます):webdriveraddress = str(os.popen("cd").read().replace("\n", ''))+'\path\to\webdriver'

0
Aidin

Chromedriver.exeをダウンロードしたとき、PATHフォルダーC:\ Windows\System32\chromedriver.exeに移動しただけで、まったく同じ問題が発生しました。

私にとっての解決策は、PATH内のフォルダーを変更することでしたので、PATH内にあるPycharm Community binフォルダーに移動しました。例:

  • C:\ Windows\System32\chromedriver.exe-> Gave me exception
  • C:\ Program Files\JetBrains\PyCharm Community Edition 2019.1.3\bin\chromedriver.exe->正常に動作しました
0
Denis Imamovic

リモートインタプリタを使用している場合は、その実行可能ファイルPATHが定義されているかどうかも確認する必要があります。私の場合、リモートのDockerインタプリタからローカルのインタプリタに切り替えることで問題は解決しました。

0
Rafał

クロムドライバのパスを確認してください、それはそこからそれを取得できない場合があります。単にコピーしてドライバの場所をコードに貼り付けます。

0
ChandyShot

の指示 に従って、webdriver.Chromeをインスタンス化するときにChromeDriverへのパスを含める必要があります。

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

PATHが正しく設定されていることを確認した後でコンピュータが動作しない場合は、コンピュータを再起動してください。

私の窓7の場合、私はいつもWebDriverException:Error:のためにエラーを得ました:chromedriver、gecodriver、IEDriverServerのために。私は私が正しいパスを持っていることをかなり確信しています。コンピュータを再起動、すべての作業

0
learningBunny

あなたのパスにクロドライバーを追加する前に、それがあなたのブラウザと同じバージョンであることを確認してください。

そうでない場合は、バージョンを一致させる必要があります。Chromeをアップデート/ダウングレードし、Webドライバをアップグレード/ダウングレードします。

私はあなたのクロムバージョンをできるだけアップデートし、そしてウェブドライバーに合わせることをお勧めします。

クロムを更新するには:

  • 右上隅にある3つの点をクリックしてください。
  • help - > About Google Chromeをクリック
  • バージョンを更新してchromeを再起動してください

それからここから互換バージョンをダウンロードしてください。 http://chromedriver.chromium.org/downloads

注意:最新のクロームドライバーは、最新バージョンのchromeと必ずしも一致しません。

これでPATHに追加できます。

  1. あなたのWebドライバを置くあなたのコンピュータのどこかに新しいフォルダを作成してください。 C:\Program Fileswebdriversという名前のフォルダーを作成しました

  2. フォルダパスをコピーします。私の場合はC:\Program Files\webdriversでした

  3. this PC - > propertiesを右クリック:

enter image description here

  1. 右クリックでAdvanced System settings
  2. Environment Variablesをクリック
  3. System variablespathをクリックしてeditをクリックします
  4. newをクリック
  5. 以前にコピーしたパスを貼り付けます
  6. すべてのウィンドウで[OK]をクリックします

それでおしまい!私はpycharmを使用しました、そしてそれを再び開く必要がありました。他のIDEや端末でも同じかもしれません。

0
Alon Gouldman

ここにwebdriver(chromedriver.exeまたはgeckodriver.exe)をC:\ Windowsに追加します。これは私の場合はうまくいきました

0