How to download pdf files using selenium java?

限于喜欢 提交于 2019-12-11 04:29:08

问题


Trying to download pdf files using selenium java. I also tried enabling the content settings of the browser but whenever the selenium script opens the browser (chrome/Mozilla), it opens with the default setting i.e. "Download PDF files instead of automatically opening them in Chrome" as disabled while my actual browser setting is enabled. Is there a way to set WebDriver capabilities(which opens as a result of selenium script execution) for the same?

Another way, I tried to form an input stream to my pdf's URL, but it is a blob URL which looks something like "blob:https://www.sitename.com/9d1f0664-9e64-4deb-bae2-1d3ac6fbed4c". So it gives me an exception of java.net.malformedurlexception unknown protocol blob

I am unable to figure out the correct way to obtain my goal of downloading pdf with a java selenium script.


回答1:


It is a known issue in Chrome https://support.google.com/chrome/answer/6213030?hl=en. if it would work, you could manage the automatically open the PDF file on this page

chrome://settings/content/pdfDocuments

It is also possible to toggle the button there via Selenium, but a little bit tricky. I'll post the working code, which toggles:

driver.get("chrome://settings/content/pdfDocuments");
new WebDriverWait(driver, 10).until(ExpectedConditions.numberOfElementsToBeMoreThan(By.cssSelector("body/deep/#control"), 10));
driver.findElements(By.cssSelector("body/deep/#control")).get(10).click();
Thread.sleep(2000); // only to see the result

driver.get("https://www.anotherPage.com/");



回答2:


You can set chrome Capabilities to autodownlod pdf.

 HashMap<String,Object> chromePrefs = new HashMap<String, Object>();
chromePrefs.put("plugins.always_open_pdf_externally", true);

 ChromeOptions options = new ChromeOptions();
        options.setExperimentalOption("prefs", chromePrefs);

Hope this help you



来源:https://stackoverflow.com/questions/51217622/how-to-download-pdf-files-using-selenium-java

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!