【Python】Seleniumにwebdriver_managerはもう要らない!

本ページはプロモーションが含まれています

PythonでChromedriverを自動更新してくれるwebdriver_managerがSeleniumのいつの間にか不要になっていたので拡散

Chromedriverの自動更新は標準化された

4.11.0から標準化されていたらしく問題となったChrome115以上のchromedriverでも自動更新できた
pypiのリリース履歴によると2023/8/1に対応完了しているらしい

chromedriverの管理ページが変わって「webdriver_managerでエラーが~」とか騒いでいた直後に実はwebdriver_manager自体不要になっていたことになるちょっと複雑な心境・・

ちなみに、Selenium4.11.0はPython3.7以上を要求しているのでバージョンを上げるときは念のため確認を

簡単に仕様を確認してみた

Seleniumをインストールするときに”selenium-manager.exe”なるものも一緒にインストールされるようになっていて、これに引数「–browser chrome –output json」付きで起動するといい感じにchromedriverをインストール(更新)してくれるらしい

つまり、細かい仕様はexe化されてしまってよくわかりません、、

とりあえず”Service”の”executable_path”を省略すると上記の自動更新がかかるし、フルパスを指定すればそのままchromedriver.exeを実行できる

webdriver_managerを使うときとの違い

webdriver_managerは”ChromeDriverManager().install()”でインストール後のchromdriver.exeのフルパスを返してくれる仕様だった

つまり、何もしなければ上記仕様の通り自動更新してくれるだけの違い

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

# ChromeDriverManagerを使わない場合
service = Service()
driver = webdriver.Chrome()

# ChromeDriverManagerを使う場合
service = Service(executable_path=ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)

chromedriverのインストール先のフォルダ

あまり必要ないかもしれませんが参考までに

selenium-manager.exe を使った場合のフォルダ

C:\Users\<ユーザー名>\.cache\selenium\chromedriver\

webdriver_manager を使った場合のフォルダ

C:\Users\<ユーザー名>\.wdm\drivers\chromedriver\

あとがき

Pythonのライブラリってあまり更新かける習慣がなくて全然気が付きませんでした

使えなくなるコマンドもあるので不用意にアップデートかけないにしても情報は確認したほうがいいなと思った今日このごろです

コメント

タイトルとURLをコピーしました