【问题标题】:C# Selenium Edge Driver unable to download file - Keep file prompt shows upC# Selenium Edge 驱动程序无法下载文件 - 显示保留文件提示
【发布时间】:2022-08-23 12:51:33
【问题描述】:
我将 C# 与 Selenium 一起用于 QA 自动化,但在下载 .xml 文件时遇到问题,因为总是出现提示询问我是否要保留该文件。它还会打开第二个选项卡以执行下载,并在提示出现后将其关闭。
[保持文件提示][1]
使用 Chrome 我看不到这种行为。
我到处搜索,找不到能够解决此问题的 EdgeOptions() 和/或 AddArguments()。
有任何想法吗?
标签:
c#
selenium
automation
webdriver
【解决方案1】:
您需要使用 JS 与另一个浏览器中的元素进行交互。我有过这样的经验,我在我的方法中使用了 if else 语句来处理这个问题。只需查看 Selenium 文档、带有 selenium 示例的 JS 等等。
【解决方案2】:
只需将此添加到您的 OneTimeSetup 方法中即可。确保以管理员身份运行 Visual Studio:
public void SetEdgeXmlDownloadPolicy()
{
var keyName = @"HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Edge\ExemptDomainFileTypePairsFromFileTypeDownloadWarnings";
var valueName = "AllowXmlDownload";
var valueData = @"{""domains"": ["" * ""], ""file_extension"": ""xml""}";
var currentValue = Registry.GetValue(keyName, valueName, string.Empty);
if (currentValue != null)
{
if (currentValue.ToString() == string.Empty || !currentValue.ToString().Contains("xml"))
Registry.SetValue(keyName, valueName, valueData, RegistryValueKind.String);
}
}