edgedriver历史版本(官方已无)下载办法
·
下载旧版本 EdgeDriver 的方法
访问 NuGet 官网 (https://www.nuget.org/) 并搜索 Microsoft.Edge.SeleniumTools.WebDriver,进入包详情页面后,点击 Versions 查看所有历史版本。
选择需要的版本号,点击 Download 按钮获取 .nupkg 文件。.nupkg 文件本质上是 ZIP 压缩包,可以修改文件后缀为 .zip 后解压。
解压后在 \tools 目录下找到 msedgedriver.exe 文件。根据操作系统版本选择 32 位或 64 位驱动,通常位于 \tools\x64 或 \tools\x86 子目录中。
使用 PowerShell 自动化下载
以下 PowerShell 脚本可以自动完成下载和解压过程:
$version = "96.0.1054.62" # 替换为所需版本号
$url = "https://www.nuget.org/api/v2/package/Microsoft.Edge.SeleniumTools.WebDriver/$version"
$output = "$env:TEMP\edgedriver.nupkg"
$extractPath = "$env:TEMP\edgedriver"
Invoke-WebRequest -Uri $url -OutFile $output
Expand-Archive -Path $output -DestinationPath $extractPath
$driverPath = Get-ChildItem -Path $extractPath -Recurse -Filter "msedgedriver.exe" | Select-Object -First 1
Copy-Item -Path $driverPath.FullName -Destination "C:\WebDriver\"
版本兼容性参考
常见 Edge 浏览器版本与对应的 Driver 版本:
- Edge 44 - 79: 使用 MSEdgeDriver 6.17134
- Edge 80 - 85: 使用 MSEdgeDriver 80.0.361
- Edge 86 - 93: 使用 MSEdgeDriver 86.0.622
- Edge 94+: 需要使用兼容的 Selenium 4.0+
验证驱动可用性
解压后可以通过命令行验证驱动是否正常工作:
msedgedriver --version
建议将驱动放置在系统 PATH 环境变量包含的目录中,或直接在测试项目中指定驱动路径。
python批量下载代码:
import os
import requests
import zipfile
import io
def download_drivers_from_version_list():
"""
通过一个预定义的 Python 列表来指定需要下载的版本号。
脚本会遍历列表,从 NuGet 下载每个版本的 .nupkg 包,
并从中提取 msedgedriver.exe 文件。
"""
download_dir = "edgedriver_versions_from_nuget"
package_id = "Selenium.WebDriver.MSEdgeDriver"
# --- 步骤1: 在这个列表中直接添加或修改您需要下载的版本号 ---
versions_to_download = [
"98.0.1108.62",
"98.0.1108.56",
"92.0.902.73",
"92.0.902.62",
"92.0.902-pre",
"91.0.864.37",
"91.0.852-pre",
"91.0.828-pre",
"90.0.818.66",
"83.0.478.58",
]
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36'
}
if not os.path.exists(download_dir):
os.makedirs(download_dir)
print(f"已创建目录: {download_dir}")
print(f"计划下载 {len(versions_to_download)} 个版本: {versions_to_download}")
# --- 步骤2: 遍历版本列表,下载、解压并提取 .exe 文件 ---
for version in versions_to_download:
new_filename = f"{version}_msedgedriver.exe"
save_path = os.path.join(download_dir, new_filename)
if os.path.exists(save_path):
print(f"-- 版本 {version} 的驱动已存在,跳过。")
continue
# 构造 NuGet 包的直接下载 URL
package_url = f"https://api.nuget.org/v3-flatcontainer/{package_id.lower()}/{version.lower()}/{package_id.lower()}.{version.lower()}.nupkg"
print(f"-> 正在处理版本 {version}...")
try:
print(f" 下载 NuGet 包: {package_url}")
response = requests.get(package_url, timeout=60, headers=headers)
response.raise_for_status() # 如果状态码不是 2xx,则引发 HTTPError
# 在内存中将下载内容作为 ZIP 文件打开
with zipfile.ZipFile(io.BytesIO(response.content)) as zip_ref:
driver_exe_path = None
# 遍历包内所有文件,找到 msedgedriver.exe
for file_in_zip in zip_ref.namelist():
if file_in_zip.lower().endswith('msedgedriver.exe'):
driver_exe_path = file_in_zip
break
if driver_exe_path:
print(f" 在包内找到驱动: {driver_exe_path}")
# 提取 msedgedriver.exe 文件并保存
with zip_ref.open(driver_exe_path) as source, open(save_path, 'wb') as target:
target.write(source.read())
print(f" 提取成功 -> {new_filename}")
else:
print(f" !! 警告: 在版本 {version} 的包内未找到 msedgedriver.exe。")
except requests.exceptions.HTTPError as e:
if e.response.status_code == 404:
print(f" !! 错误: 版本 {version} 在 NuGet 上未找到 (404 Not Found)。")
else:
print(f" !! HTTP 错误: {e}")
except requests.exceptions.RequestException as e:
print(f" !! 网络请求错误: {e}")
except Exception as e:
print(f" !! 处理版本 {version} 时发生未知错误: {e}")
print("\n所有指定的 NuGet 包已处理完毕。")
if __name__ == "__main__":
download_drivers_from_version_list()
更多推荐

所有评论(0)