Seleniumのドライバは、ブラウザの自動化には不可欠というか、必須です。
Pythonや他のプログラミング言語のSeleniumライブラリは、ブラウザのアクションを制御し、機能を追加し、データ(ウェブページ)を操作するために、特定のブラウザのドライバを使用します。
ブラウザのドライバを宣言する最も一般的な方法とは異なり、最も一般的ですが、しばしば非互換性の問題が発生することがあります。
PythonのコードでWebドライバをインストール、初期化する方法は複数あります(それほど一般的ではありません)。
推奨される読み物 Python Seleniumの紹介とセットアップ
ドライバをダウンロードする
Seleniumで最も大きなエラーは、ブラウザのドライバのバージョンとブラウザのバージョンが一致しない場合に発生し、互換性の問題が生じます。
そのため、自動化に使用するWebブラウザ(Google Chrome、Mozilla Firefox、Apple Safari、その他)と同じバージョンのドライバを使用する必要があります。
これらのドライバは、公式のブラウザ会社によって管理され、ブラウザとウェブページのテストと自動化のために適宜更新されるため、ウェブドライバのダウンロードとインストールは完全に安全です。
自動化するブラウザのバージョンを確認し、以下のリファレンスから適宜ドライバをダウンロードしてください。
| ウェブブラウザ|ドライバダウンロードリファレンス
| — | — |
| Google Chrome/Chromium|ダウンロードする
| Mozilla Firefox|ダウンロード
| Microsoft Edge|ダウンロード
| Apple Safari|すでに組み込まれています
ドライバダウンロードリンク## ドライバを利用する方法
それでは、selenium web ドライバの使い方を見ていきましょう。
1. ダイレクトロケーションの入力
- ブラウザの自動化のためにPython SeleniumコードでWebドライバを使用する最も一般的な方法です。人気の理由は、スクリプトでドライバを定義する、直接的なアプローチであることです。
- この方法は、Webドライバを手動でダウンロードする必要があります。
利点は 長時間のセットアップや環境変数の把握が不要
デメリット デメリット:コードの柔軟性に欠け、アップデートのたびに手動で変更する必要がある。
driver = webdriver.Chrome('path / to / chromedriver")
driver = webdriver.Chrome( 'C://software/chromedriver.exe' ) #driver located at the specified location
driver = webdriver.Chrome( 'chromedriver.exe' ) #driver located in the same directory as of the python script file
#other way service = Service(executable_path = "/path/to/chromedriver" )
driver = webdriver.Chrome(service = service)
|
2. 環境変数
- 上記の方法を試された方は、インストールしたWebドライバの場所を記憶するのが大変なことに気づかれたかもしれません。
- この問題に取り組むために、我々は、一度だけ、環境変数にドライバの場所またはパスを定義します。この定義が成功すると、コード内でパスの場所を指定する必要がなくなり、楽にコードを書くことができます。
- この方法は、パス変数の問題のために使用されることをご存知かもしれませんが、ドライバの手動インストールを必要とします。
メリット ドライバのパスを指定する手間がない。
環境パス変数の設定方法は、コマンドプロンプトで以下のコマンドを入力します。
setx PATH "%PATH%;C:WebDriverin"
|
この方法が難しい場合は、Windowsのスタートメニューから「環境変数」を検索し、「開く」-「システム環境変数の編集」をクリックする方法があります。
その後、ポップアップウィンドウから「環境変数」を選択すると、別のポップアップウィンドウが表示されます。
システム変数のオプションから、「パスを開く」を選択し、「新規」をクリックして、新しいパス変数を導入してください。
Webドライバの場所を貼り付けて、OK、OK、そして最後にもう一度OKをすべてのウィンドウで実行してください。
3. ドライバマネージャ
最後に、おそらく最も便利な方法は、Pythonコード内のWebドライバを使用することです。
Webブラウザで自動更新を選択すると、デバイスはブラウザだけを更新し、インストールされたドライバは更新しません。
この場合、Pythonスクリプトの実行時に、ブラウザとドライバのバージョンが等しくないというエラーが発生します。
メリット バージョンの互換性の問題がなく、複数のブラウザを簡単に切り替えることができる。
デメリット 初心者には少し難しいかもしれません。
ドライバマネージャーのインストール
pip install webdriver-manager
|
ドライバマネージャーのインポート
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager # --> for Chrome
#from webdriver_manager.firefox import GeckoDriverManager # --> for Firefox |
ドライバマネージャのインストールとインポートが完了したので、コード内で以下のように使用します。
install()` メソッドを使用して、マネージャが使用する場所を取得し、それを loc_service クラスに渡します。
このメソッドは、インストールされたWebドライバの場所を単独で通知します。
driver = webdriver.Chrome(ChromeDriverManager().install()) # --> for Chrome #driver = webdriver.Firefox(executable_path=GeckoDriverManager().install()) #--> for Firefox |
その他のブラウザについては、ドライバマネージャソフトウェアの公式 GitHub リポジトリを参照してください。
おわりに
チュートリアルは以上です。
SeleniumでWebドライバを使用する一般的な方法とは逆に、この記事では同じことを行うための他の、おそらく有利な方法について学びました。