Загрузка PDF с использованием Selenium Java не работает в Chrome - PullRequest
0 голосов
/ 06 марта 2019

Я написал следующий код для отключения просмотра Chrome PDF, чтобы файл PDF можно было автоматически загружать в папку C: \ downloads при открытии ссылки в 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);

К сожалению,Я считаю, что просмотрщик PDF не отключается должным образом.Вот что я получаю с этим кодом, когда открываю этот URL-адрес PDF:

enter image description here Даже если я включаю Загрузка PDF-файлов вместо автоматического их открытия в Chrome, я все еще получаю вышеуказанный результат.

Есть ли другое решение для автоматической загрузки файла в Chrome?

1 Ответ

1 голос
/ 08 марта 2019

Мне удалось автоматически загрузить PDF в Chrome с загрузкой существующего профиля браузера.Может быть, вам нужен только профиль без просмотра PDF.

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