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

使用Python Selenium无法修改Chrome默认下载目录问题排查

问题排查与修复方案

直接说几个导致下载目录不生效的核心问题,对应修改即可:

1. 下载路径的冗余转义

你用了原始字符串前缀r,还在末尾加了双反斜杠,虽然语法合法,但容易造成配置识别异常,改成单反斜杠结尾更稳妥:

"download.default_directory": r"C:\Users\danish.zahid\Downloads\pubsmed\"

或者不用原始字符串,用标准双反斜杠格式:

"download.default_directory": "C:\\Users\\danish.zahid\\Downloads\\pubsmed\\"

2. 缺少关键下载偏好配置

Chrome的下载规则需要补充两个参数,确保弹窗被拦截、文件直接下载不跳转打开,否则会忽略自定义目录设置:
在prefs字典里添加:

"profile.default_content_settings.popups": 0,
"download.extensions_to_open": ""

3. ChromeDriver与Chrome版本不匹配

这是最容易忽略的点——必须保证你的ChromeDriver版本和本地安装的Chrome浏览器大版本完全一致(比如Chrome是118.x,ChromeDriver也要用118.x版本),版本不匹配会导致多数自定义配置失效。

4. 残留Chrome进程干扰配置

Jupyter运行脚本后,有时Chrome进程没有完全退出,新启动的浏览器会复用旧配置。运行脚本前,先打开任务管理器杀掉所有chrome.exe和chromedriver.exe进程,再重新执行代码。

修改后的完整代码

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select

options = Options()
options.add_argument("start-maximized")
options.add_argument("--disable-popup-blocking")  # 新增:全局禁用弹窗拦截
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
options.add_experimental_option("prefs", {
  "download.default_directory": r"C:\Users\danish.zahid\Downloads\pubsmed\",
  "download.prompt_for_download": False,
  "download.directory_upgrade": True,
  "profile.default_content_settings.popups": 0,  # 新增:拦截下载弹窗
  "download.extensions_to_open": ""  # 新增:所有文件直接下载不打开
})

study_title = "Pan-cancer single-cell landscape of tumor-infiltrating T cells"
s = Service(r"C:\Users\danish.zahid\Downloads\chromedriver_win32\chromedriver.exe")
browser = webdriver.Chrome(service=s, options=options)
browser.get("https://pubmed.ncbi.nlm.nih.gov/")

search_box = browser.find_element(By.ID, "id_term")
search_box.send_keys(study_title)
search_box.send_keys(Keys.RETURN)

save_button = browser.find_element(By.XPATH, "//*[@id='save-results-panel-trigger']")
save_button.click()

dropdownlist = browser.find_element(By.ID, "save-action-format")
select_dropdown = Select(dropdownlist)
select_dropdown.select_by_visible_text("PubMed")

download_file = browser.find_element(By.XPATH, "//*[@id='save-action-panel-form']/div[2]/button[1]")
download_file.click()

# 可选:等待下载完成再关闭浏览器,避免提前终止导致下载中断
import time
time.sleep(5)

browser.quit()

额外排查点

如果还是不生效,试试把下载目录改成更简单的路径(比如C:\Temp\PubMed),避免路径包含特殊字符或需要管理员权限的目录——部分系统目录会限制写入,导致Chrome自动回退到默认下载路径。

内容的提问来源于stack exchange,提问作者Danish Zahid Malik

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 04:47:13