Selenium WebDriver在Firefox

时间:2018-05-29 14:48:21

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

我设置了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,我在互联网上找到了如上面的代码所示,但它不起作用。

我的问题:

  1. .msg文件类型的正确MIME是什么?
  2. 有没有办法让neverAsk.saveToDisk的setPreference保存所有类型而不添加很长的MIME类型列表?
  3. 我正在使用最新的FF 60和Selenium 3.12以及geckoDriver v.0.20进行测试。

    修改

    我不知道是不是这个原因,但在我的测试中,我点击一个接一个地下载2个文件,首先是zip文件,然后是.msg文件。我还尝试将.msg文件替换为.jpg.pdf,他们遇到与.msg文件相同的问题。似乎neverAsk.saveToDisk的setPreference仅影响一种MIME类型

1 个答案:

答案 0 :(得分:0)

所以,我去检查所有正在下载的mime类型的文件。除了File1的mime类型保持不变之外,无论此文件的实际mime类型如何,File2的mime类型都会以某种方式更改为application/domain-of-my-app。将新的mime类型application/domain-of-my-app添加到列表后,它会按预期工作。