带有 MS Edge Beta (v91) 的 Selenium 不会在没有提示的情况下下载 XML 文件(此类文件可能会损害您的设备)

Selenium with MS Edge Beta (v91) does not download XML files without prompt (this type of file can harm your device)

此问题开始针对 MS Edge Chromium Beta v91 (91.0.864.15) 重现。此浏览器于 4 月 30 日星期五发布。

当我的 Selenium 测试尝试下载 XML 文件时 - 文件未下载。浏览器显示类似“这种类型的文件可能会损害您的设备”的警告。当我尝试在同一测试(PDF、DOC)中下载其他文件类型时 - 这些文件已成功下载。 IE。我的 Edge 选项允许在没有额外提示的情况下下载文件(并且它在 Edge v90 中也能正常工作)。 我当前的边缘选项是:

options.AddUserProfilePreference("download.prompt_for_download", false);
options.AddUserProfilePreference("download.default_directory", "C:\MyDir");
options.AddUserProfilePreference("safebrowsing.enabled", true);  //also tried with 'false' - still not working
options.AddArguments("--safebrowsing-disable-download-protection");
options.AddArguments("safebrowsing-disable-extension-blacklist");

看起来,Microsoft 为此在 Edge v91 中添加了一些额外的参数。 您知道吗,对于 Edge 版本 91,我应该使用什么 MS Edge 选项来处理 XML 在 Selenium 测试中没有提示的文件下载?

是的,看起来现在无法通过 Edge 选项进行配置。 作为解决方法,我使用了以下 powershell 脚本,它更新 Windows 注册表:

$regpath="HKLM:\Software\Policies\Microsoft\Edge\ExemptDomainFileTypePairsFromFileTypeDownloadWarnings"

if (!(Test-Path $regpath)) {
    New-Item -Path $regpath -Force
}

New-ItemProperty -Path $regpath -Name "1" -Value '{"domains": ["*"], "file_extension": "xml"}' -PropertyType String -Force

请看https://docs.microsoft.com/en-us/deployedge/microsoft-edge-policies#exemptdomainfiletypepairsfromfiletypedownloadwarnings

"企业可以使用 ExemptDomainFileTypePairsFromFileTypeDownloadWarnings 来指定允许从特定站点不间断下载的文件类型。例如,以下策略允许从 contoso.com 和 [=18] 下载 XML 个文件=] 不间断,并可从任何站点下载 MSG 文件。

[{"file_extension":"xml","域":["contoso.com", "woodgrovebank.com"]}, {"file_extension":"msg", "域": ["*"]}]"