You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# Selenium中ChromeOptions无法修改默认下载路径的解决方案咨询

问题:ChromeDriver下载文件始终默认到系统文件夹,如何自定义下载路径?

我尝试使用以下C#代码配置Chrome浏览器的下载目录,期望文件能下载到指定的MyLocation路径,但实际文件还是会默认保存到系统下载文件夹。请问有没有其他ChromeOptions配置项可以解决这个问题?

ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.AddUserProfilePreference("download.prompt_for_download", false);
chromeOptions.AddUserProfilePreference("download.directory_upgrade", true);
chromeOptions.AddUserProfilePreference("download.default_directory", MyLocation);
driver = new ChromeDriver(chromeOptions);

解决方案

我之前也遇到过一模一样的问题,通常是因为缺少几个关键配置项,或者路径格式、版本匹配出了问题,你可以试试以下几种方法:

  • 先确认路径格式正确:确保MyLocation是绝对路径,Windows环境下记得用转义的反斜杠(\\)或者直接用正斜杠(/),比如写成@"C:\MyCustomDownloads"或者"C:/MyCustomDownloads",避免因为路径解析失败导致配置不生效。

  • 添加PDF文件下载的强制配置:如果下载的是PDF类文件,Chrome默认会用内置阅读器打开,可能会绕过你的下载目录设置,添加这个偏好可以强制下载到指定路径:

    chromeOptions.AddUserProfilePreference("plugins.always_open_pdf_externally", true);
    
  • 适配新版Chrome的安全浏览设置:Chrome 80+版本的安全浏览机制可能会拦截自定义下载目录,添加以下两个偏好可以解决这个问题:

    chromeOptions.AddUserProfilePreference("safebrowsing.enabled", true);
    chromeOptions.AddUserProfilePreference("safebrowsing.disable_download_protection", true);
    
  • 检查Chrome和ChromeDriver版本匹配:如果你的ChromeDriver版本和Chrome浏览器版本不兼容,也会导致配置项无法正常生效。建议保持两者版本一致。

  • 无头模式下的额外配置:如果你是在无头模式运行Chrome,除了上述配置外,还需要添加几个命令行参数来禁用下载气泡,确保路径生效:

    chromeOptions.AddArgument("--headless=new"); // 使用新版无头模式(推荐)
    chromeOptions.AddArgument("--disable-gpu");
    chromeOptions.AddArgument("--disable-features=DownloadBubble,DownloadBubbleV2");
    

把这些配置组合起来,你的代码大概会变成这样:

string MyLocation = @"C:\MyCustomDownloads"; // 确保是绝对路径
ChromeOptions chromeOptions = new ChromeOptions();

// 基础下载配置
chromeOptions.AddUserProfilePreference("download.prompt_for_download", false);
chromeOptions.AddUserProfilePreference("download.directory_upgrade", true);
chromeOptions.AddUserProfilePreference("download.default_directory", MyLocation);

// 处理PDF类文件
chromeOptions.AddUserProfilePreference("plugins.always_open_pdf_externally", true);

// 适配新版Chrome安全设置
chromeOptions.AddUserProfilePreference("safebrowsing.enabled", true);
chromeOptions.AddUserProfilePreference("safebrowsing.disable_download_protection", true);

// 如果是无头模式,添加下面的参数
// chromeOptions.AddArgument("--headless=new");
// chromeOptions.AddArgument("--disable-gpu");
// chromeOptions.AddArgument("--disable-features=DownloadBubble,DownloadBubbleV2");

driver = new ChromeDriver(chromeOptions);

一般来说,做完这些调整后,Chrome就会乖乖把文件下载到你指定的目录了。


内容的提问来源于stack exchange,提问作者Amit Brahmbhatt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:26:47