尝试使用Selenium Java下载pdf文件。我也尝试启用浏览器的内容设置,但是每当硒脚本打开浏览器(chrome / Mozilla)时,它将以默认设置打开,即在我的实际浏览器设置中禁用了“下载PDF文件而不是在Chrome中自动打开它们”已启用。 有没有办法将WebDriver功能(由于执行硒脚本而打开)设置为相同?
另一种方法是,我尝试为pdf URL形成输入流,但这是一个blob URL,看起来像“ blob:https://www.sitename.com/9d1f0664-9e64-4deb-bae2-1d3ac6fbed4c”。因此,它为我提供了 java.net.malformedurlexception未知协议Blob
的例外我无法找出正确的方法来实现我的目标,即使用Java硒脚本下载pdf。
答案 0 :(得分:1)
这是Chrome https://support.google.com/chrome/answer/6213030?hl=en中的一个已知问题。如果可行,您可以在此页面上管理自动打开PDF文件
chrome://settings/content/pdfDocuments
也可以通过Selenium在那里切换按钮,但是有点棘手。我将发布工作代码,该代码将进行切换:
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/");
答案 1 :(得分:1)
您可以将chrome功能设置为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);
希望对您有帮助