使用Python Selenium Chromedriver自动下载PDF跳过保存弹窗问题咨询
Selenium Chrome 93 下载PDF无弹窗配置修正方案
需调整的核心配置项
- 修正路径转义问题:Windows系统下文件路径的反斜杠
\为Python字符串转义符,需在路径前加r标记为原始字符串,或使用双反斜杠\\,否则路径解析错误会导致下载配置失效。 - 替换失效的PDF预览禁用规则:Chrome 57及以上版本不再支持
plugins.plugins_list配置,改用plugins.always_open_pdf_externally: True即可强制PDF文件不触发内置预览、直接走下载流程。 - 补充下载权限配置:新增弹窗拦截、安全校验豁免的相关参数,避免Chrome触发安全类保存提示。
- 注意:手动修改本地Chrome配置不生效是正常现象,Selenium默认启动独立的临时用户配置,不会读取本地浏览器的自定义设置,所有配置必须通过ChromeOptions传入才会生效。
修正后完整代码
from selenium import webdriver chrome_options = webdriver.ChromeOptions() prefs = { # 强制PDF直接下载,不打开内置预览器 "plugins.always_open_pdf_externally": True, # 下载路径标记为原始字符串,规避转义问题 "download.default_directory": r"C:\PDFDownload\PDFs", "download.prompt_for_download": False, "download.directory_upgrade": True, # 禁用下载相关弹窗 "profile.default_content_settings.popups": 0, # 豁免下载文件的安全校验提示 "safebrowsing.enabled": True, "download_restrictions": 0, # 若站点存在多文件自动下载场景,可补充以下参数 # "profile.default_content_setting_values.automatic_downloads": 1 } chrome_options.add_experimental_option("prefs", prefs) # 可选启动参数,减少无关功能干扰 chrome_options.add_argument("--disable-extensions") chrome_options.add_argument("--disable-print-preview") driver = webdriver.Chrome( executable_path=r"C:\Selenium\chromedriver.exe", options=chrome_options )
内容的提问来源于stack exchange,提问作者Mason
相关产品推荐
相关产品推荐

