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

Chrome 117升级后Selenium下载文件弹出「另存为」对话框求助

修复Chrome 117版本下Selenium下载弹出「另存为」对话框的问题

Chrome升级到117后,即便配置了下载偏好设置,Selenium下载文件仍会弹出系统级「另存为」对话框,试试下面这些解决办法:

1. 严格匹配Chrome和ChromeDriver版本

Chrome 117对应的ChromeDriver必须是117.0.5938.88/89这个小版本,主版本一致但小版本不匹配也会导致配置失效。去官方渠道重新下载对应版本的ChromeDriver替换现有文件。

2. 补充Chrome 117专属的下载配置

在你现有的prefs配置里添加以下参数:

// 禁用下载保护提示
prefs.put("safebrowsing.disable_download_protection", true);
// 清空自动打开的文件扩展名列表,强制所有文件下载
prefs.put("download.extensions_to_open", "");

注意要确保download.prompt_for_download = false的配置在ChromeOptions初始化前完成,顺序错误可能导致设置不生效。

3. 排查无痕模式的干扰

你当前启用了--incognito无痕模式,Chrome在无痕模式下会重置部分偏好设置。先临时移除这个参数测试,如果问题消失,就给无痕模式指定临时用户目录来加载配置:

chromeOptions.addArguments("--incognito");
// 指定临时用户目录,让无痕模式读取下载配置
chromeOptions.addArguments("--user-data-dir=" + System.getProperty("java.io.tmpdir") + "/chrome_temp_profile");

4. 特殊文件类型单独处理

如果下载的是PDF文件,除了plugins.always_open_pdf_externally,再加一行配置:

prefs.put("pdfjs.disabled", true);

强制Chrome直接下载PDF,而非在浏览器内打开,避免触发额外的保存提示。

5. 确保下载目录有权限

先确认代码里的downloads目录存在且具备读写权限,最好在代码中添加目录创建逻辑:

Path downloadPath = Paths.get("downloads");
if (!Files.exists(downloadPath)) {
    Files.createDirectories(downloadPath);
}
String downloadDir = downloadPath.toAbsolutePath().toString();

若目录不存在,Chrome会自动 fallback到默认下载路径,进而弹出「另存为」对话框。


内容的提问来源于stack exchange,提问作者Prophet

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 22:50:18