Java Selenium:禁用“另存为”下载弹窗仅无头模式生效,求正常模式方案
解决Chrome正常模式下下载弹窗问题
你的代码在无头模式生效但正常模式失效,核心原因是Chrome正常模式的安全机制比无头模式更严格,需要补充两个关键配置项来彻底禁用弹窗:
修改后的完整代码如下:
HashMap<String, Object> prefs = new HashMap<>(); // 指定下载目录 prefs.put("download.default_directory", LocationUtil.getDownloadFolderPath()); // 关闭下载提示弹窗 prefs.put("download.prompt_for_download", false); // 强制升级下载目录,确保Chrome认可指定路径 prefs.put("download.directory_upgrade", true); // 禁用安全浏览检查,避免正常模式下的安全提示弹窗 prefs.put("safebrowsing.enabled", false); ChromeOptions options = new ChromeOptions(); options.setExperimentalOption("prefs", prefs); // 如果下载的是PDF文件,需额外添加以下参数禁用内置预览器(否则会触发预览而非直接下载) options.addArguments("--disable-pdf-viewer");
关键配置说明:
download.directory_upgrade: 当指定的下载目录未被Chrome标记为可信任时,这个配置会强制Chrome使用该目录,避免因目录权限问题触发弹窗。safebrowsing.enabled: 正常模式下Chrome会对未知来源文件做安全扫描,扫描过程中会弹出确认窗口,关闭该配置可跳过这一步检查。--disable-pdf-viewer: 针对PDF文件,Chrome默认会打开内置预览器而非直接下载,添加该参数可强制文件直接保存到指定目录。
内容的提问来源于stack exchange,提问作者Word Place
相关产品推荐
相关产品推荐

