Selenium - Edge (Chromium) 浏览器 - 设置默认下载路径的直接选项

Posted

技术标签:

【中文标题】Selenium - Edge (Chromium) 浏览器 - 设置默认下载路径的直接选项【英文标题】:Selenium - Edge (Chromium) browser - Direct option to set default download path 【发布时间】:2020-08-19 20:46:52 【问题描述】:

有没有一种直接的方法来设置 Edge (Chromium) 浏览器的默认下载路径,就像我们为 chrome、firefox 浏览器设置的那样

示例 sn-p(用于 chrome):

映射首选项 = new HashMap(); pref.put("download.default_directory", "下载路径");

ChromeOptions 选项 = new ChromeOptions(); options.setExperimentalOption("prefs", pref);

【问题讨论】:

prefs = "profile.default_content_settings.popups": 0, "download.default_directory": r"C:\Users\user_dir\Desktop\\", "directory_upgrade": True options.add_experimental_option ("prefs", prefs) return webdriver.Chrome(executable_path=Base.chromedriver_dir, chrome_options=options) 【参考方案1】:

这里我假设您使用的是 Edge Chromium 浏览器的最新稳定版本。

我正在向您展示 C# 项目的示例。

建议你添加对Microsoft.Edge.SeleniumTools的引用

using Microsoft.Edge.SeleniumTools;

namespace selenium_IE_automation

    class Program
    
        static void Main(string[] args)
        
            var options = new EdgeOptions();
            options.UseChromium = true;
            options.BinaryLocation = @"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe";   // Here add the Edge browser exe path.
            options.AddUserProfilePreference("download.default_directory", @"D://");                    // Here add the download path.
            var driver = new EdgeDriver(@"D:\D drive backup\selenium web drivers\edgedriver_win64 81.0.416.68", options); // Here add the selenium web driver path.
        
    

输出:

参考资料:

    Set download directory via WebDriver Selenium Tools for Microsoft Edge

注意:如果您正在使用任何其他语言进行开发,那么您可以尝试将上述代码转换为该语言以使其工作。

编辑:

这是使用 JAVA 语言的示例。它使用 Selenium 4。

此解决方案已使用 MS Edge Chromium 81.0.416.72 版本进行测试。

public class new_java_class 

        public static void main(String[] args) 


                  System.setProperty("webdriver.edge.driver","D:\\D drive backup\\selenium web drivers\\edgedriver_win64  81.0.416.72\\msedgedriver.exe");

                  Map<String, Object> prefs = new HashMap<String, Object>();

                  prefs.put("download.default_directory",
                  System.getProperty("user.dir") + File.separator + "externalFiles" + File.separator + "downloadFiles");

                  EdgeOptions op=new EdgeOptions();
                  op.setExperimentalOption("prefs", prefs);

                  WebDriver browser = new EdgeDriver(op);

                  browser.get("https://microsoft.com");

        


【讨论】:

设置'UseChromium = true;'选项在 java 版本中不起作用。Selenium 3.x 还有其他方法吗? 我尝试参考文档,它只显示了为 C# 和 Python 实现这个库的方法。我没有办法将此库添加到 JAVA 项目中。我在文档中注意到此功能默认添加到 Selenium 4。因此,如果您可以使用 Selenium 4,那么它可能有助于解决此问题。 请看我更新的答案。我已经分享了使用 Selenium 4 为 Edge Chromium 浏览器设置默认下载文件夹的 JAVA 语言示例。如果您还有其他问题,请告诉我。感谢您的理解。 有人用python成功过吗?【参考方案2】:

从 selenium 4 开始,无需导入 Microsoft.Edge.SeleniumTools,Microsoft.Edge.SeleniumTools 中的函数已经是 selenium 4 边缘选项的一部分

【讨论】:

以上是关于Selenium - Edge (Chromium) 浏览器 - 设置默认下载路径的直接选项的主要内容,如果未能解决你的问题,请参考以下文章

使用C#+Edge (Chromium)进行Web自动化测试

最新Microsoft Edge!使用chromium内核

selenium webdriver驱动的安装 3

全新 Chromium 版 Microsoft Edge 浏览器到底长啥样?

Chromium的新版Edge离线安装包

禁用 Microsoft Edge (Chromium) 开发人员模式扩展在启动时弹出