使用Selenium与Python将文件保存到指定磁盘位置时下载失败求助
解决Selenium Chrome下载文件到指定路径失败的问题
以下是针对你遇到的下载错误的具体修复建议:
修正下载路径配置
Windows路径的解析需要注意格式,同时补充Chrome下载相关的配置参数,避免弹窗或路径识别异常:options = Options() options.add_experimental_option("prefs", { "download.default_directory": r"D:\\", # 用双反斜杠确保路径被正确识别 "download.prompt_for_download": False, # 自动下载,不弹出确认窗口 "download.directory_upgrade": True, "safebrowsing.enabled": True # 启用安全浏览规则,避免合法文件被拦截 })确认ChromeDriver与Chrome版本匹配
ChromeDriver的版本必须和本地安装的Chrome浏览器主版本号一致,版本不兼容会导致下载等核心功能失效。替换为对应版本的ChromeDriver后重试。检查目标路径的写入权限
D盘根目录可能需要管理员权限才能写入,建议创建一个子文件夹(如D:\selenium_downloads)并设置路径到该文件夹,同时确保文件夹有写入权限:import os download_folder = r"D:\selenium_downloads" if not os.path.exists(download_folder): os.makedirs(download_folder) options.add_experimental_option("prefs", {"download.default_directory": download_folder})优化页面交互逻辑
部分网站会检测自动化行为,需要确保页面完全加载后再触发下载,可添加滚动和额外等待:driver.get("http://www.aastocks.com/tc/stocks/market/high-low-stocks.aspx?catg=1&period=3&t=1") # 等待元素加载并滚动到可见位置 download_btn = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.CLASS_NAME, "ts2_icon_excel"))) driver.execute_script("arguments[0].scrollIntoView();", download_btn) # 确认元素可点击后再执行点击 WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CLASS_NAME, "ts2_icon_excel"))).click()临时关闭安全浏览(仅信任网站使用)
如果安全浏览机制误拦截了下载,可临时关闭该选项(注意风险):options.add_experimental_option("prefs", { "safebrowsing.enabled": False, "download.default_directory": r"D:\\" })
内容的提问来源于stack exchange,提问作者Ed T
相关产品推荐
相关产品推荐

