selenium - Selenium WebDriver 在 Firefox 上下载 .msg 类型
问题描述
我设置了一个 Firefox 配置文件以在 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
它不起作用的文件,仍然会出现“下载”对话框并且文件不会被保存。
我已经尝试了.msg
文件的 MIME,我在互联网上找到了如上面的代码所示,但它不起作用。
我的问题:
.msg
文件类型的正确 MIME 是什么?- 有没有办法 setPreference
neverAsk.saveToDisk
来保存所有类型而不添加一长串 MIME 类型?
我正在使用最新的 FF 60 和 Selenium 3.12 以及 geckoDriver v.0.20 进行测试。
编辑:
我不知道是不是这个原因,但在我的测试中,我一个接一个地点击下载2个文件,先是zip文件,然后是.msg
文件。我也尝试用 and 替换文件.msg
,并且它们与文件有相同的问题。似乎 setPreference for仅影响一种 MIME 类型.jpg
.pdf
.msg
neverAsk.saveToDisk
解决方案
所以,我去检查正在下载的所有 mime 类型的文件。除了 File1 的 mime 类型保持原样之外,File2 的 mime 类型以某种方式更改为application/domain-of-my-app
与此文件的实际 mime 类型无关。将此新的 mime 类型添加application/domain-of-my-app
到列表后,它按预期工作。
推荐阅读
- tcp - Bytes to receive on gen_tcp:recv by parsing json
- hyperledger-fabric - 关于使用 Fabric-CA 节点 sdk 进行用户注册的问题
- c - 用于生成 ftok() 密钥的公式是什么?
- c# - 将项目添加到 ObservableCollection 时出现 InteropServices.COMException
- pyspark - 带有数据框查询的 PySpark UDF 函数?
- python - 我正在尝试为 spacy 安装 en 但它给出了以下错误
- android - 在 Android Studio 中使用来自 SQLite 的数据填充 ExpandableListView
- javascript - 停止额外的间隔
- python - 如何处理 ML 分类中的字符串数据
- python-multiprocessing - python3中multiprocessing.Lock的共享字典