设置为避免firefox中的下载对话框的首选项不适用于pdf

时间:2017-08-22 06:53:55

标签: selenium selenium-webdriver mime-types selenium-firefoxdriver firefox-profile

我尝试设置所有可能的首选项,以避免在使用selenium下载文件时打开并保存文件对话框。

它适用于文本文件,但不适用于PDF文件

以下是首选项设置:

    String downloadPath = <some random path>;
    String mimetypes = "application/vnd.pdf,application/vnd.adobe.xfdf,text/csv,application/x-msexcel,application/excel,application/pdf,application/x-excel,application/vnd.ms-excel,image/png,image/jpeg,text/html,text/plain,application/msword,application/xml";
    String url = "http://only-testing-blog.blogspot.in/2014/05/login.html";
    FirefoxProfile profile = new FirefoxProfile();
    profile.setPreference("browser.download.panel.shown", false);
    profile.setPreference("browser.download.folderList", 2);
    profile.setPreference("browser.download.manager.showWhenStarting", false);
    profile.setPreference("browser.download.dir", downloadPath);
    profile.setPreference("browser.helperApps.neverAsk.openFile", mimetypes);
    profile.setPreference("browser.helperApps.neverAsk.saveToDisk", mimetypes);
    profile.setPreference("browser.helperApps.alwaysAsk.force", false);
    profile.setPreference("browser.download.manager.alertOnEXEOpen", false);
    profile.setPreference("browser.download.manager.focusWhenStarting", false);
    profile.setPreference("browser.download.manager.useWindow", false);
    profile.setPreference("browser.download.manager.showAlertOnComplete", false);
    profile.setPreference("browser.download.manager.closeWhenDone", false);

    FirefoxDriver driver = new FirefoxDriver(profile);
    driver.get(url);
    driver.findElement(By.xpath("//a[contains(.,'Download PDF File')]")).click();

使用 Firefox 46 2.53.0 selenium v​​ersion

请帮助我使其适用于PDF,Excel和Word文件

谢谢!

1 个答案:

答案 0 :(得分:0)

我发现的一个解决方案是使用ProfileIni类。它允许您加载预制的firefox配置文件。您使用如下所示

private ProfilesIni init = new ProfilesIni();
private FirefoxProfile profile = init.getProfile("QA");
private WebDriver driver = new WebDriver(profile);

然后,您可以直接在配置文件中设置所有这些首选项,并将设置设置为跳过下载对话框并自动保存到您想要的目标文件夹,并保留每个需要下载内容的测试用例的设置< / p>