java - 如何使用 selenium java 下载 pdf 文件?

标签 java selenium selenium-chromedriver bloburls

尝试使用 selenium java 下载 pdf 文件。我还尝试启用浏览器的内容设置,但每当 selenium 脚本打开浏览器(chrome/Mozilla)时,它都会以默认设置打开,即“下载 PDF 文件而不是在 Chrome 中自动打开它们”在我的实际浏览器设置中被禁用已启用。 有没有办法设置 WebDriver 功能(作为 selenium 脚本执行的结果打开)?

另一种方式,我试图形成一个输入流到我的 pdf 的 URL,但它是一个看起来像“blob:https://www.sitename.com/9d1f0664-9e64-4deb-bae2-1d3ac6fbed4c”的 blob URL。所以它给了我一个异常(exception) java.net.malformedurlexception unknown protocol blob

我无法找出正确的方法来实现使用 java selenium 脚本下载 pdf 的目标。

最佳答案

这是 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/");

关于java - 如何使用 selenium java 下载 pdf 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51217622/

相关文章:

c# - Selenium ChromeDriver C# 如何在加载之前导航页面?

python - 远程端关闭连接无响应chromedriver

python - 以 root 身份运行时 Chromium webdriver 错误

javascript - 需要将提示框(Javascript)中的用户输入放入字符串变量中。我该怎么做?

python - 如何将 UPX 与 pyinstaller 一起使用?

java - 将小时添加到包含 00 :00:00 的字符串

java - @Profile ("String") 和 @ProfileName 有什么区别

Java HashMap 在循环迭代中丢失值

java - WebDriver getText 抛出异常

java - Java中括号内的数字分割