【问题标题】:Selenium - Edge (Chromium) browser - Direct option to set default download pathSelenium - Edge (Chromium) 浏览器 - 设置默认下载路径的直接选项
【发布时间】: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)

标签: selenium selenium-chromedriver microsoft-edge chromium


【解决方案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.
        }
    }
}

输出:

参考资料:

  1. Set download directory via WebDriver
  2. 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 边缘选项的一部分

【讨论】:

    猜你喜欢
    • 2020-10-30
    • 2020-06-29
    • 2020-05-13
    • 2020-05-03
    • 1970-01-01
    • 2020-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多