ショート:
https://automatetheboringstuff.com/chapter11 でSelenium Moduleを使用してブラウザを制御するを読んだ後、実行しようとしていますPyDevの仮想環境のセレンChromeドライバー。私はPyDevの外部からなんとかできましたが、内部から得ました:
Selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH.
長いです:
Linux Debian 3.10.11-1を使用しています。
https://www.dabapps.com/blog/introduction-to-pip-and-virtualenv-python/ の前に、PyDevで始める前に、 。 。
Virtualenvを使用して仮想環境をセットアップする
インストールされたvirtualenv
pip install virtualenv
プロジェクトのディレクトリを作成しました
cd〜/ temp /
mkdir my_project
cd my_mproject
env
という仮想環境を作成しました
virtualenv env
それをアクティブにしました。
ソースenv/bin/activate
Pythonのインタラクティブモードに入って、Pythonのどのバージョンを使用していたかを自分に教えました
python
Python 2.7.12rc1(デフォルト、2016年6月13日、09:20:59) [GCC 5.4.0 20160609] on linux2
対話モードを終了し、Seleniumのものをインストールした
まずモジュール
peleインストールSelenium
https://groups.google.com/forum/#!topic/obey-the-testing-goat-book/Ty4FQoV3S0Q の提案に従って、インストールされたchromedriver
cd env/bin /
wget http://chromedriver.storage.googleapis.com/2.22/chromedriver_linux64.Zip
chromedriver_linux64.Zipを解凍します
それが機能するかどうかを確認するために小さなスクリプトを書きました
seleniumからインポートwebdriver driver = webdriver.Chrome()
それを実行しました。 A Chrome web-browser window open。Great。
PyDevで試してみましょう:
おおまかに https://www.caktusgroup.com/blog/2011/08/31/getting-started-using-python-Eclipse/ に従います。 。 。
インストールされているEclipse(Neon)
インストールされたPyDev
Eclipse内から新しいプロジェクトを作成しました(Fileメニュー>新しいプロジェクト >一般>プロジェクト、プロジェクト名をクリックし、完了)をクリックしました。
コマンドプロンプトに戻ります(EclipseとPyDev内からこれを行う方法がまだわかっていないため):cd
を新しいプロジェクトのルートディレクトリに入れ、仮想環境を作成しました。
以前と同じように、コマンドプロンプトで、新しいプロジェクトの仮想環境をアクティブ化し、Seleniumモジュールをインストールしてから、chromedriver_linux64.Zip
ファイルから生成されたchromedriver
実行可能ファイルをインストールしました。
Eclipseに戻って、仮想環境を使用するようにプロジェクトにサインアップしました。これは、PyDevの専門用語では仮想環境ではなく、インタープリターと呼ばれていると思います。
ウィンドウメニュー>設定> PyDev>インタープリター>Pythonインタープリター>Add。
通訳に名前を付けます。
Interpreter Executableの場合、プロジェクトの仮想環境のbin
ディレクトリにあるpython2.7
ファイルを選択しました
プロジェクトを右クリックして、Properties>PyDev-Interpreter/Grammar>Interpreterの下で新しいインタープリターを選択>[〜#〜] ok [〜#〜]。
プロジェクトに同じスクリプトを与えた。 。 。
seleniumからインポートwebdriver driver = webdriver.Chrome()
Runメニューをクリックして実行しました>Run As>Python Run。
しかし、Chrome Webブラウザーウィンドウが開く代わりに、Eclipseのコンソールにメッセージしか表示されません。
Selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH.
コマンドプロンプトから同じスクリプトを実行する場合と同じようにWebブラウザーウィンドウを開くには、次のことを試みました。
仮想環境のbin
フォルダー(chromedriver
ファイルがあるため)をインタープリターに追加します。
インタプリタを削除して、新しく作成します。
chromedriver
を自分のスクリプトと同じディレクトリにコピーします。変わりはない。
ダウンロードしたchromedriver_linux64.Zip
ファイルをインタープリターに追加します。まだ同じエラー。
PyDevでスクリプトを作成し、コマンドプロンプトを実行してスクリプトを実行し続けました。 PyDevのデバッグモードで実行できればいいのですが。
Eclipseからスクリプトを実行できるように、PyDevの「PATH
」でこの「chromedriver」を取得するにはどうすればよいですか?
これが最善の方法であるかどうかはわかりませんが、うまくいくと思われるものを見つけました:PATHという名前のすでに利用可能な変数をインタープリターに追加し、その変数の値を編集して、プロジェクトの仮想への相対パスを含めました環境のbin
ディレクトリ(つまり、chromedriver
実行可能ファイルが保存されているディレクトリ)。
より正確に:
Window Eclipseのメニュー> Preferences> PyDev左側> Interpreters> Python Interpreters =。
私のプロジェクト用に以前に作成したインタープリターを選択しました(上記の質問で説明したとおり)
Preferencesウィンドウの下半分でLibariesからEnvironmentに切り替えられました
右側の選択...ボタンをクリックしました。
環境変数の一覧が表示されました。
リストを下にスクロールすると、[〜#〜] path [〜#〜]という名前のものが見つかりました。それを選択し、[〜#〜] ok [〜#〜]ボタンをクリックします。
それとその値(/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
)は、空のリストに表示されていました。
私はそれを選択してクリックしました編集...
その名前と値は編集可能になりました。
値の右端に:env/bin
を追加しました(つまり、スクリプトを保持するディレクトリからプロジェクトの仮想環境のbin
ディレクトリへの相対パス)。
[〜#〜] ok [〜#〜]をクリックして、Preferences window> Applyに戻りますPreferencesウィンドウ> [〜#〜] ok [〜#〜]Preferencesウィンドウを閉じます。
Eclipse内からプログラムを実行しました(スクリプトファイルを選択> Run menu> Run As> Python Run)。
Chrome(まあ、Chromium-これはDebianです))ウィンドウは、コマンドプロンプトからプログラムを実行していたときと同じように開きました。
すごい。
PATHにchromedriverを配置するすべての試みが失敗した場合は、次のように実行可能パスをwebdriver.Chrome()に渡すこともできます。
chromedriver_loc = '/path/to/chromedriver'
driver = webdriver.Chrome(executable_path=chromedriver_loc)
これは、virtualenvからchromedriverを実行しようとしたときの最終的な解決策でした。