使用 Selenium WebDriver 获取默认下载文件夹路径

get the default downloads folder path using Selenium WebDriver

我是 selenium 的新手,我想知道如何 获取 浏览器下载文件夹的默认路径(我正在使用 chrome ) 在操作系统中。

我刚刚找到了一种方法来设置默认路径,如下所示:

 var chromeOptions = new ChromeOptions();
 chromeOptions.AddUserProfilePreference("download.default_directory", path);
 chromeOptions.AddUserProfilePreference("intl.accept_languages", "nl");
 chromeOptions.AddUserProfilePreference("disable-popup-blocking", "true");
 var driver = new ChromeDriver("Driver_Path", chromeOptions);

2 种实现方法。

一个可以在这里找到: Find Chrome Path

其次是在浏览器上输入(可以通过 sendKeys 完成):

chrome://settings

然后指示您的网络驱动程序点击 'advanced' 最后你可以从 'location'

中获取默认下载目录

如果您遇到任何困难或需要进一步的帮助,请告诉我。 祝你好运!

driver.get("chrome://settings/?search=Downloads");

然后截图。

我也有类似的获取下载路径的需求,我选择了明确设置。如果您可以在创建驱动程序时显式设置路径,则可以使用它。

就我而言,我创建了一个继承自 ChromeDriver 的新 class,它包含下载路径。

public class MyChromeDriver : ChromeDriver
{
    public string DownloadsPath { get; set; }
    
    public MyChromeDriver(ChromeOptions options) : base(options) { }
}

然后当我需要一个新的 ChromeDriver 时,我创建新的 MyChromeDriver 并设置下载路径。

var options = new ChromeOptions();
var downloadsPath = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString());
Directory.CreateDirectory(downloadsPath);
options.AddUserProfilePreference("download.default_directory", downloadsPath);
options.AddUserProfilePreference("download.prompt_for_download", false);
options.AddUserProfilePreference("disable-popup-blocking", "true");
var myChromeDriver = new MyChromeDriver(options);
myChromeDriver.DownloadsPath = downloadsPath;

现在,每当我需要下载路径时,我都会在 myChromeDriver.DownloadPath 中找到它。