1

我正在尝试在 Edge Chromium 浏览器上运行一些 selenium C# 端到端测试。其中一项测试进行下载检查,基本上它下载一个 xml 文件并检查它是否存在于下载的位置。

我正在使用 Microsoft.Edge.SeleniumTools EdgeOptions 来构造 EdgeDriver 的选项。

但现在的问题是 Edge 会阻止下载。

1

尝试了不同种类的东西,但都没有奏效。

通过在 ChromeOptions 中禁用 UserProfilePreferences 上的“安全浏览”,可以在 Chrome 上解决同样的问题。

我知道 SmartScreen 会阻止这一事实,如果是这样,我可以使用任何配置文件偏好来禁用 SmartScreen 吗?

或者任何其他在没有阻止的情况下强制下载的解决方法都会非常有帮助。

4

1 回答 1

0

出于测试目的,我建议您创建HashMap对象并尝试设置 Edge 首选项,如下所示。

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");

看看是否有助于下载文件。

于 2021-04-20T06:30:10.353 回答