【Python/Selenium】自動で最適なWebDriverを取得する方法
こんにちは、前回までで一通りブログのカスタマイズが終わったので、これからは主にプログラミング関連になるとは思いますが、何かしら学んだことを日々書き連ねていきたいと思います
Seleniumでブラウザ操作を自動化するにあたり必要なこと
Chrome,Firefox,Edgeなどウェブブラウザは様々ありますが、それらの操作を自動化するための前提として次のことが挙げられます
・それぞれのブラウザのWebDriverが必要
・ドライバーのバージョンと使用しているブラウザのバージョンが合っている必要がある
操作したいブラウザのドライバーのダウンロードページに行って自分に合ったドライバーのバージョンをインストールするだけなので、この作業自体が大変というわけではないです
WebDriverを手動で更新する場合の問題点
ただブラウザ側のバージョンが上がる度に毎回整合性を取らなければならなくなる可能性はあります
そんなの面倒ですよね
その作業をプログラム自身にやってもらおうというのが本記事の趣旨です
WebManagerの使用方法
WebManagerのインストール
pythonでのWebManagerのインストールは簡単です
おなじみpipで次のコマンドを打つだけです
pip install webdriver_manager
サンプルコード
使用するブラウザはChromeです
#必要なパッケージのインポート from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager def get_web_driver(): #ここで使用環境にあったWebDriverをインストール driver=webdriver.Chrome(ChromeDriverManager().install()) return driver driver=get_web_driver() driver.get('https://google.com')
初回実行時は次のような流れになります
・使用しているブラウザのバージョンを確認
・それに合った最新のドライバーを取得
・適したドライバーがない場合はwebからダウンロード
・'C:\\Users\\ユーザー名\\.wdm\\drivers\\chromedriver\\win32\\86.0.4240.22にドライバーを保存
キャッシュが存在する場合はそのキャッシュを利用しています