Java 在Firefox中自动下载pdf文件

Java 在Firefox中自动下载pdf文件,java,firefox,selenium-webdriver,junit4,Java,Firefox,Selenium Webdriver,Junit4,我正在用Selenium和JUnit进行测试。 我正在尝试导出报告(pdf和xls)。 使用Selenium,我单击下载链接,并执行verifcar以断言文件位于正确的文件夹中 我可以用xls进行测试,但Firefox总是问我想用PDF做什么 Firefox、Selenium的配置如下: String downloadPath = new File("src/test/resources/firefox_download").getAbsolutePath(); firefoxProfile.s

我正在用Selenium和JUnit进行测试。 我正在尝试导出报告(pdf和xls)。 使用Selenium,我单击下载链接,并执行verifcar以断言文件位于正确的文件夹中

我可以用xls进行测试,但Firefox总是问我想用PDF做什么

Firefox、Selenium的配置如下:

String downloadPath = new File("src/test/resources/firefox_download").getAbsolutePath();
firefoxProfile.setPreference("browser.download.dir", downloadPath);
        firefoxProfile.setPreference("browser.download.lastDir", downloadPath);
        firefoxProfile.setPreference("browser.download.manager.showWhenStarting", false);
        firefoxProfile.setPreference("plugin.disable_full_page_plugin_for_types", "application/pdf,application/vnd.fdf");

        firefoxProfile.setPreference("browser.download.folderList", 2);
        firefoxProfile.setPreference("browser.download.defaultFolder", downloadPath);
        firefoxProfile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf, application/vnd.fdf, application/x-msdos-program, application/x-unknown-application-octet-stream, application/vnd.ms-powerpoint, application/excel, application/vnd.ms-publisher, application/x-unknown-message-rfc822, application/vnd.ms-excel, application/msword, application/x-mspublisher, application/x-tar, application/zip, application/x-gzip,application/x-stuffit,application/vnd.ms-works, application/powerpoint, application/rtf, application/postscript, application/x-gtar, video/quicktime, video/x-msvideo, video/mpeg, audio/x-wav, audio/x-midi, audio/x-aiff"); // tipo específico
        firefoxProfile.setPreference("browser.helperApps.alwaysAsk.force", false);
我可以在这里手动更改:

或在此:

但我需要以编程的方式完成这项工作,否则测试将在其他地方失败(例如服务器/声纳)


注:Firefox 19

您可以尝试将MIME类型设置为
application/octet stream
,这样如果浏览器不知道如何处理它,它会弹出一个
另存为
对话框您可以尝试将MIME类型设置为
application/octet stream
,如果浏览器不知道如何处理它,它将弹出一个
另存为
对话框

谢谢,它可以工作了!在browser.helperApps.neverAsk.savetodisk中还添加了应用程序/八位字节流,如果无法更改应用程序中文件的MIME类型,该怎么办?恐怕您必须在浏览器(每个客户端)中对其进行设置,并针对每个文件类型:/(例如,对于firefox:
Tools>Options>Applications>Action+在组合框中选择“另存为”
)谢谢,它可以工作!还在browser.helperApps.neverAsk.savetodisk中添加了application/octet流,如果无法更改应用程序中文件的MIME类型,该怎么办?恐怕您必须在浏览器中设置它(每个客户端)和每个文件类型:/就像问题中显示的第一次尝试操作一样(例如,对于firefox:
Tools>Options>Applications>Action+在组合框中选择“另存为”)