我编写了以下代码来禁用Chrome PDF查看器,以便在Chrome中打开链接时可以自动将PDF文件下载到C:\ downloads文件夹中。
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查看器未正确禁用。这是我打开该PDF网址时获得的代码的内容:
即使我启用了 下载PDF文件而不是在Chrome中自动打开它们 ,我仍然可以获得上述结果。
还有其他解决方案可以在Chrome中自动下载文件吗?
答案 0 :(得分:1)
我通过加载现有的浏览器配置文件在Chrome中管理了自动PDF下载。也许您只需要一个没有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();
}
}