【问题标题】:Downloading PDF using Selenium Java not working in Chrome使用 Selenium Java 下载 PDF 在 Chrome 中不起作用
【发布时间】:2019-03-06 09:45:10
【问题描述】:

我编写了以下代码来禁用 Chrome PDF 查看器,以便在 Chrome 中打开链接时可以将 PDF 文件自动下载到 C:\downloads 文件夹中。

ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<>();
prefs.put("download.default_directory", "C:\\downloads");
prefs.put("download.prompt_for_download", false);
prefs.put("plugins.always_open_pdf_externally", true);
options.setExperimentalOption("prefs", prefs);
options.addArguments("--test-type");
options.addArguments("--disable-extensions");
driver = new ChromeDriver(options);

不幸的是,我相信 PDF 查看器没有被正确禁用。这是我打开 PDF 网址时使用此代码得到的结果:

即使我启用 下载 PDF 文件而不是在 Chrome 中自动打开它们,我仍然会得到上述结果。

还有其他解决方案可以在 Chrome 中自动下载文件吗?

【问题讨论】:

  • 您检查过here提供的解决方案吗?

标签: java selenium pdf selenium-chromedriver


【解决方案1】:

我通过加载现有浏览器配置文件在 Chrome 中管理自动 PDF 下载。也许您只需要没有 PDF 查看器的个人资料。

public class WebdriverSetup {   
    public static String chromedriverPath = "C:\\Users\\pburgr\\Desktop\\selenium-tests\\GCH_driver\\chromedriver.exe";
    public static String chromeProfilePath = "C:\\Users\\pburgr\\AppData\\Local\\Google\\Chrome\\User Data";    
    public static WebDriver driver; 
    public static WebDriver startChromeWithCustomProfile() {
        System.setProperty("webdriver.chrome.driver", chromedriverPath);
        ChromeOptions options = new ChromeOptions();
        options.addArguments("user-data-dir=" + chromeProfilePath);
        driver = new ChromeDriver(options);
        driver.manage().window().maximize();
        return driver;
    }
    public static void shutdownChrome() {
        driver.close();
        driver.quit();
    }
}

【讨论】:

    猜你喜欢
    • 2019-04-12
    • 2015-08-07
    • 1970-01-01
    • 2020-12-23
    • 2019-05-28
    • 2018-02-07
    • 2021-03-21
    • 2018-05-21
    • 1970-01-01
    相关资源
    最近更新 更多