如何通过C#控制Chrome文件下载(选目录、改文件名、开关自动下载)
C# Selenium Chrome 自定义下载目录实现方案
错误点说明
- Java 版本 Selenium 里的
setExperimentalOption是专属API,C# 版本不提供该同名方法 AddArguments仅用于传入 Chrome 启动命令行参数,浏览器用户偏好配置(prefs)不属于启动参数,因此该写法不会生效
正确实现代码
using System.IO; using OpenQA.Selenium; using OpenQA.Selenium.Chrome; // 你的自定义下载路径 string downloadFilepath = @"D:\test"; // 提前创建目录,否则Chrome会忽略配置使用默认下载路径 if (!Directory.Exists(downloadFilepath)) { Directory.CreateDirectory(downloadFilepath); } ChromeOptions options = new ChromeOptions(); // 禁用弹窗拦截 options.AddUserProfilePreference("profile.default_content_setting_values.popups", 0); // 设置默认下载目录 options.AddUserProfilePreference("download.default_directory", downloadFilepath); // 可选:禁用下载时的"另存为"弹窗 options.AddUserProfilePreference("download.prompt_for_download", false); // 可选:绕过不安全下载的拦截警告 options.AddUserProfilePreference("safebrowsing.enabled", true); IWebDriver webDriver = new ChromeDriver(options);
注意事项
- 请确保你已通过 NuGet 安装了对应版本的
Selenium.WebDriver和Selenium.WebDriver.ChromeDriver包 - ChromeDriver 大版本必须与本地安装的 Chrome 浏览器大版本一致,否则可能出现配置不生效、驱动启动失败的问题
内容的提问来源于stack exchange,提问作者Constantine Ketskalo
相关产品推荐
相关产品推荐

