Varun Bali
Varun Bali

Reputation: 183

Downloading PDF using Selenium Java not working in Chrome

I have written the following code to disable the Chrome PDF viewer so that the PDF file can be downloaded automatically in the C:\downloads folder when the link is opened in Chrome.

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);

Unfortunately the PDF viewer does not get disabled properly I believe. Here's what I get with this code when I open that PDF url:

enter image description here Even if I enable the Download PDF files instead of automatically opening them in Chrome, I still get the above result.

Is there any other solution to get the file downloaded automatically in Chrome?

Upvotes: 0

Views: 2380

Answers (1)

pburgr
pburgr

Reputation: 1778

I managed automatic PDF download in Chrome with loading existing browser profile. Maybe you need just a profile without PDF viewer.

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();
    }
}

Upvotes: 1

Related Questions