我设置了Firefox Profile以在Firefox上下载文件。这是我的代码:
String mimeTypes = "application/zip,application/octet-stream,application/vnd.ms-outlook";
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.download.dir", path);
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.download.manager.showWhenStarting", false);
profile.setPreference("browser.helperApps.alwaysAsk.force", false);
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", mimeTypes);
对于zip文件,它可以正常工作并自动保存文件,而无需打开下载对话框。但是对于.msg
文件,它不起作用, Download 对话框仍会出现,并且文件未保存。
我已经尝试了.msg
文件的MIME,我在互联网上找到了如上面的代码所示,但它不起作用。
我的问题:
.msg
文件类型的正确MIME是什么?neverAsk.saveToDisk
的setPreference保存所有类型而不添加很长的MIME类型列表?我正在使用最新的FF 60和Selenium 3.12以及geckoDriver v.0.20进行测试。
修改
我不知道是不是这个原因,但在我的测试中,我点击一个接一个地下载2个文件,首先是zip文件,然后是.msg
文件。我还尝试将.msg
文件替换为.jpg
和.pdf
,他们遇到与.msg
文件相同的问题。似乎neverAsk.saveToDisk
的setPreference仅影响一种MIME类型
答案 0 :(得分:0)
所以,我去检查所有正在下载的mime类型的文件。除了File1的mime类型保持不变之外,无论此文件的实际mime类型如何,File2的mime类型都会以某种方式更改为application/domain-of-my-app
。将新的mime类型application/domain-of-my-app
添加到列表后,它会按预期工作。