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のインストール先のフォルダ
あまり必要ないかもしれませんが参考までに
あとがき
Pythonのライブラリってあまり更新かける習慣がなくて全然気が付きませんでした
使えなくなるコマンドもあるので不用意にアップデートかけないにしても情報は確認したほうがいいなと思った今日このごろです
コメント