Windows系统下Selenium ChromeDriver设prompt_for_download=False无法下载文件怎么办?
解决Windows下Selenium ChromeDriver自动下载失败的问题
针对你遇到的问题,以下几个方案可以尝试:
1. 修复Windows路径转义问题
你的代码里下载路径'C:\mydownload'存在转义字符问题——Python中\m会被解析为转义序列,导致实际路径不正确。你可以用三种方式修正:
- 使用原始字符串:
r'C:\mydownload' - 使用双反斜杠:
'C:\\mydownload' - 使用正斜杠:
'C:/mydownload'
2. 确保下载目录存在
如果指定的下载文件夹C:\mydownload不存在,ChromeDriver无法自动创建目录,会导致下载失败。可以在代码开头添加目录创建逻辑:
import os download_dir = r'C:\mydownload' if not os.path.exists(download_dir): os.makedirs(download_dir)
3. 添加安全浏览相关偏好设置
Windows下Chrome的安全浏览机制可能拦截ChromeDriver的自动下载,需要在prefs里补充以下配置:
'safebrowsing.enabled': False, 'safebrowsing.disable_download_protection': True
4. 确认ChromeDriver与Chrome版本匹配
虽然webdriver-manager会自动匹配版本,但偶尔可能出现同步延迟。可以手动检查Chrome版本(Chrome菜单→帮助→关于Google Chrome),然后指定版本安装:
wd = webdriver.Chrome(ChromeDriverManager(version="你的Chrome版本号").install(), options=o)
修正后的完整代码示例:
from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager import os # 创建下载目录 download_dir = r'C:\mydownload' if not os.path.exists(download_dir): os.makedirs(download_dir) o = webdriver.ChromeOptions() o.add_experimental_option('prefs', { 'download.default_directory': download_dir, 'download.prompt_for_download': False, 'download.directory_upgrade': True, 'plugins.always_open_pdf_externally': True, 'safebrowsing.enabled': False, 'safebrowsing.disable_download_protection': True }) wd = webdriver.Chrome(ChromeDriverManager().install(), options=o) wd.get('https://file-examples.com/wp-content/storage/2017/10/file-sample_150kB.pdf') # wd.quit()
内容的提问来源于stack exchange,提问作者Nam G VU
相关产品推荐
相关产品推荐

