2022年5月4日水曜日

Selenium Chrome / Edge driver 更新を自動化する

 自分は Selenium + PowerShell でいろいろ Web 操作を自動化しているが,Chrome / Edge の自動 Update に合わせて Chrome / Edge Driver も更新しないと,スクリプト実行時にエラーで停止してしまう.
(Edge はよく知らないけど) Chrome は結構頻繁に更新されてしまうので,Driver も自動更新させてみた.

Chrome / Edge / Edge Driver のバージョンは exe のリソースに埋め込まれているので,

(get-item ("ファイル")).VersionInfo.FileVersion
で取得できる.Chrome driver は exe リソースにバージョン番号が記録されてないので,適当なテキストファイルに Driver バージョンを記録して,次回はそれを参照することにする.

あとは,Chrome / Edge と Driver のメジャーバージョン番号が異なっていれば,Invoke-WebRequest で Driver をダウンロードして zip 展開すれば良い.

というわけで,以下コード.これを Selenim を使用する PowerShell スクリプトの先頭で

. "selenium.ps1" # インクルード
UpdateDriver('chrome') # または 'edge'
とすることで Driver を自動で Update できた.