Как скачать PDF-файлы, используя селен Java?
Попытка загрузить PDF-файлы, используя селен Java. Я также попытался включить настройки содержимого браузера, но всякий раз, когда сценарий selenium открывает браузер (chrome / Mozilla), он открывается с настройками по умолчанию, например, "Загружать файлы PDF вместо автоматического открытия их в Chrome", как отключено, в то время как мои действующие настройки браузера включен. Есть ли способ установить возможности WebDriver (который открывается в результате выполнения сценария selenium) для одного и того же?
Другой способ - попытаться сформировать поток ввода для URL моего pdf, но это URL-адрес большого двоичного объекта, который выглядит примерно так: "blob: https://www.sitename.com/9d1f0664-9e64-4deb-bae2-1d3ac6fbed4c ". Так что это дает мне исключение из java.net.malformedurlexception неизвестного большого двоичного объекта протокола
Я не могу найти правильный способ получить мою цель загрузки PDF с помощью сценария Java Selen.
2 ответа
Это известная проблема в 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/");
Вы можете установить Chrome Capabilities на автоматическое скачивание 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);
Надеюсь, это поможет вам