我正在尝试在Edge Chromium浏览器上运行一些selenium C#端到端测试。其中一个测试执行下载检查,基本上它下载一个xml文件并检查它是否存在于下载的位置。
我正在使用Microsoft.Edge.SeleniumTools EdgeOptions来构造EdgeDriver的选项。
但现在的问题是Edge阻止下载。

我试过不同的方法,但都不管用。
同样的问题也可以在Chrome上通过在ChromeOptions中禁用UserProfilePreferences上的“安全浏览”来解决。
我知道SmartScreen确实会阻止SmartScreen,如果是这样的话,有没有什么配置文件首选项可以用来禁用use?
或者任何其他在没有阻止的情况下强制下载的解决方法都会非常有帮助。
发布于 2021-04-20 14:30:10
出于测试目的,我建议您创建HashMap对象并尝试设置边缘首选项,如下所示。
static void Main(string[] args)
{
HashMap<String, Object> edgePrefs = new HashMap<String, Object>();
edgePrefs.put("profile.default_content_settings.popups", 0);
edgePrefs.put("profile.default_content_setting_values.notifications", 2);
edgePrefs.put("profile.default_content_setting_values.automatic_downloads" , 1);
edgePrefs.put("profile.content_settings.pattern_pairs.*,*.multiple-automatic-downloads",1);
var options = new EdgeOptions();
egdeOptions.setExperimentalOption("prefs",edgePrefs);
options.UseChromium = true;
options.BinaryLocation = @"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"; // Here add the Edge browser exe path.
var driver = new EdgeDriver(@"Edge_driver_path_here...", options); // Here modify the selenium web driver path.
driver.Navigate().GoToUrl("http://website_URL_here...");
driver.FindElementById("lnk1").Click();
}如果问题仍然存在,我建议您设置默认下载目录,如下所示。
options.AddUserProfilePreference("download.default_directory", @"D://Folder1");
看看下载文件是否有帮助。
https://stackoverflow.com/questions/67166818
复制相似问题