2013-03-08 165 views
1

我正在使用Selenium和JUnit進行測試。 我試圖導出報告(pdf和xls)。 使用Selenium時,我單擊下載鏈接,並執行驗證以斷言文件位於正確的文件夾中。在Firefox中自動下載pdf文件

我能夠用xls進行測試,但Firefox總是詢問我想要用PDF做什麼。

的Firefox的配置,硒是這樣的:

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); 

我可以手動更改,在這裏:

Manual 1

或在這裏:

Manual 2

但我需要做這個程序matically,或測試將在別處失敗(如服務器/聲納)

PS:火狐19

回答

1

你可以嘗試將MIME類型設置爲application/octet-stream因此,如果瀏覽器犯規知道如何處理它,它會彈出一個save as對話框

+0

謝謝,它的工作原理!還在browser.helperApps.neverAsk.saveToDisk中添加application/octet-stream – Falci 2013-03-08 12:01:17

+0

如果在應用程序中無法更改文件的MIME類型,該如何處理? – ravenik 2013-04-11 10:51:09

+0

我擔心你必須在瀏覽器(每個客戶端)和每種文件類型中進行設置:/就像問題中顯示的OP的第一次嘗試一樣(例如,對於firefox來說:'Tools> Options >應用程序>動作+在組合框中選擇「另存爲」) – A4L 2013-04-11 17:31:48