19日に更新してた

アフィリエイトはないよ

python で msedgedriver.exe を edge バージョンに合わせてダウンロードしてくる

chrome でも同じようなのを書いたのですが、ほぼ一緒です。
d:\bin に win64 版の msedgedriver.exe をおいて使う設定です。

アプリケーションフォルダにバージョンに合わせたディレクトリが作られ、実行中だと新しいバージョンのディレクトリも作られるため、リストで一番小さいものを取る形にしています。

import os
import re
import urllib.request
import zipfile
import subprocess


def edge_driver_auto_update(edgedriver_path=r'd:\bin'):
    pattern = r'\d+\.\d+\.\d+\.\d+'
    dirs =[]
    for d in os.listdir(r'C:\Program Files (x86)\Microsoft\Edge\Application'):
        matched = re.search(pattern, d)
        if matched:
            dirs.append(matched[0])
    version = min(dirs)

    cmd2 = rf'{os.path.join(edgedriver_path,"msedgedriver.exe")} -version'
    stdout2 = subprocess.check_output(cmd2)
    if version != stdout2.split()[3].decode('utf-8'):
        url = f"https://msedgedriver.azureedge.net/{version}/edgedriver_win64.zip"
        urllib.request.urlretrieve(url, "edgedriver_win64.zip")
        with zipfile.ZipFile("edgedriver_win64.zip") as zipF:
            zipF.extractall(edgedriver_path)
        print("edge driver updated")
        os.remove("edgedriver_win64.zip")

chrome と違ってバーション番号が最後まで一致するドライバを使うのと、マイクロソフトらしい見栄えのするダウンロードサイトが新鮮。

developer.microsoft.com

令和6年1月24日 一部修正