小编Ale*_*lex的帖子

ChromeDriver 版本 117+ 强制“另存为”对话框 - 如何绕过?(硒/Java)

我一直致力于在 Java 中使用 Selenium WebDriver 和 ChromeDriver 来自动下载文件。我的代码工作正常,直到我更新到 ChromeDriver 版本 117+,代码工作正常,直到 Chrome 116.0.5845.141,问题似乎从 Chrome 116.0.5845.188 开始。现在,浏览器似乎强制显示“另存为”对话框,即使我已经设置了 Chrome 首选项来避免它。

这是我的 Java 代码片段:

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

import java.util.HashMap;

public class FileDownloadHeadless {
    public static void main(String[] args) throws InterruptedException {

        System.setProperty("webdriver.chrome.driver", "path/to/chromedriver.exe");

        ChromeOptions options = new ChromeOptions();
        options.setCapability("os", "Windows");
        options.setCapability("os_version", "10");
        options.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
        options.setCapability(CapabilityType.ForSeleniumServer.ENSURING_CLEAN_SESSION, true);
        options.setCapability("chrome.switches", Arrays.asList("--incognito"));
        options.setCapability(ChromeOptions.CAPABILITY, options);
        options.addArguments("--headless");
        options.addArguments("--disable-gpu");

        HashMap<String, Object> chromePrefs = new HashMap<>();
        chromePrefs.put("profile.default_content_settings.popups", 0);
        chromePrefs.put("download.default_directory", "C:\\local_files");
        chromePrefs.put("download.prompt_for_download", false);
        chromePrefs.put("profile.content_settings.exceptions.automatic_downloads.*.setting", 1);
        chromePrefs.put("profile.default_content_setting_values.automatic_downloads", 1); …
Run Code Online (Sandbox Code Playgroud)

java download software-update selenium-chromedriver selenium-webdriver

8
推荐指数
1
解决办法
2630
查看次数