这是我几周以来一直在努力解决的问题,但似乎找不到可行的解决方案。简而言之,我的程序进入一个网站并下载了一些文件。当它去下载一个文件时,FireFox 总是显示弹出窗口询问我想把它保存到哪里。为了摆脱这个弹出窗口,我创建了一个配置文件首选项。
profile.setPreference("browser.helperApps.neverAsk.saveToDisk","application/zip,application/vnd.ms-excel");
此首选项适用于我需要下载的一个 zip 文件,但它完全忽略了我需要的其他 3 个 Microsoft CSV 文件。我已经尝试了所有我能想到的适用的 mime 类型,但没有一个有效。我通过一个在线程序运行我的文件,该程序应该告诉您该文件是什么 mime 类型,它宣称我测试的文件是 application/vnd.ms-excel
。不幸的是,我从来没有能够让这种类型工作。我尝试了各种不同的方式来设置配置文件,例如:
profile.setPreference("browser.helperApps.neverAsk.saveToDisk","application/zip" + "application/vnd.ms-excel");
甚至只是使用 application/vnd.ms-excel
前面没有 zip
类型,仍然没有骰子。有没有另一种方法可以将其设置为每次尝试下载这些文件时都没有弹出窗口的地方?更妙的是,我的代码是否有问题允许 zip 文件工作,但不允许 Microsoft csv?
最佳答案
这是一组 CSV 特定的 mime 类型,适用于 SO 上的其他用户:
profile.setPreference('browser.helperApps.neverAsk.saveToDisk', "text/plain, application/vnd.ms-excel, text/csv, application/csv, text/comma-separated-values, application/download, application/octet-stream, binary/octet-stream, application/binary, application/x-unknown")
我很确定 application/x-unknown
是适合您的那个,因为这是 Firefox 本身确定的文件的 mime 类型(对我有用)。
您还可以执行以下操作:
- 使用 Firefox 手动下载此特定文件
- 打开“保存文件”弹出窗口时,选中“从现在起自动对此类文件执行此操作”复选框并保存文件
- 现在,转到“帮助”->“故障排除信息”
- 找到配置文件目录并保存路径
- 在您的 Selenium 代码中,使用指向此现有配置文件的
FirefoxProfile
启动 Firefox,查看有关如何操作的更多信息 here
关于java - 使用 Selenium 在 FireFox 中设置首选项时出现 mime 类型问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34779013/