
本文详解如何解决Chrome浏览器在Selenium自动化中拦截CSV文件下载的问题,核心在于修正下载路径的转义格式——Windows系统下必须使用双反斜杠(\)而非正斜杠(/),否则Chrome将忽略下载配置并触发安全拦截。
本文详解如何解决chrome浏览器在selenium自动化中拦截csv文件下载的问题,核心在于修正下载路径的转义格式——windows系统下必须使用双反斜杠(`\`)而非正斜杠(`/`),否则chrome将忽略下载配置并触发安全拦截。
在使用Selenium + Chrome自动下载CSV文件时,即使已配置download.default_directory、禁用提示和安全浏览保护,下载仍可能被静默阻止(表现为无文件生成、无报错、但控制台或下载栏显示“已阻止此下载”)。根本原因常被忽视:Chrome驱动对Windows路径的解析严格依赖标准Python字符串转义规则——单个反斜杠会被视为转义字符(如
、 ),导致路径解析失败,进而使整个下载偏好设置失效。
✅ 正确做法是:在prefs字典中,将Windows路径中的所有路径分隔符统一改为双反斜杠 \:
from selenium import webdriver
options = webdriver.ChromeOptions()
prefs = {
"download.default_directory": "D:\Lokale schijf\COMPANYNAME\datafiles\SOFTWEAR_STOCKDATA",
"download.prompt_for_download": False,
"safebrowsing.enabled": False, # ⚠️ 关键调整:若需绕过下载保护,建议设为False(非True)
"download.directory_upgrade": True,
"download.extensions_to_open": "",
}
options.add_experimental_option("prefs", prefs)
options.add_argument("--disable-popup-blocking")
options.add_argument("--disable-features=DownloadBubble,DownloadBubbleV2") # 彻底禁用新版下载UI干扰
options.add_argument("--no-sandbox")
options.add_argument("--disable-gpu")
driver = webdriver.Chrome(options=options)
? 重要注意事项:
-
safebrowsing.enabled设为True反而会强化下载拦截逻辑,应设为False(仅限可信环境下的自动化任务); - 确保目标下载目录真实存在且具有写入权限(Selenium不会自动创建多级嵌套目录);
- 若路径含空格或特殊字符,无需额外引号,双反斜杠已确保字符串字面量安全;
- 推荐添加
"download.directory_upgrade": True和"download.extensions_to_open": ""进一步提升兼容性; - 启动前可先手动验证路径:
os.path.isdir(r"D:Lokale schijfCOMPANYNAMEdatafilesSOFTWEAR_STOCKDATA")。
? 总结:Chrome对Selenium下载路径的校验极为严格,路径格式错误是下载失败的首要原因。与其反复尝试禁用各类安全特性,不如优先确保download.default_directory符合Windows路径转义规范——这是90%同类问题的根因。调试时可在启动后打印driver.execute_cdp_cmd('Browser.getDownloadDirectory', {})确认实际生效路径。











