问题描述:
在使用Python2.7+ Selenium 3.8 + Firefox57 + MacOS Sierra的环境中,设置了browser.helperApps.neverAsk.openFile后,仍然出现下载弹出框。
解答:
在Python2.7+ Selenium 3.8 + Firefox57 + MacOS Sierra的环境中,设置browser.helperApps.neverAsk.openFile是为了在浏览器中下载文件时,自动保存文件而不弹出下载弹出框。然而,有时候即使设置了该参数,仍然会出现下载弹出框的情况。
可能的原因是Firefox57版本及以上的浏览器对于文件下载的处理方式发生了改变,导致该参数失效。为了解决这个问题,可以尝试以下几种方法:
- 使用Firefox的配置文件:
可以通过创建一个新的Firefox配置文件来解决该问题。具体步骤如下:/Applications/Firefox.app/Contents/MacOS/firefox-bin -P
- 打开终端,输入以下命令创建一个新的Firefox配置文件:
- 在弹出的窗口中,点击"Create Profile"按钮,然后按照提示创建一个新的配置文件。
- 在新的配置文件中,打开Firefox浏览器,输入"about:config"并回车。
- 在搜索框中输入"browser.download.folderList",将其值修改为2,表示将文件保存到指定目录。
- 在搜索框中输入"browser.download.dir",将其值修改为你想要保存文件的目录路径。
- 在搜索框中输入"browser.helperApps.neverAsk.saveToDisk",将其值修改为你想要自动保存的文件类型的MIME类型。例如,如果你想要自动保存PDF文件,可以将其值修改为"application/pdf"。
- 关闭并重新打开Firefox浏览器,然后尝试下载文件,看是否能够自动保存而不弹出下载弹出框。
- 使用Firefox的ProfileManager:
可以通过使用Firefox的ProfileManager来创建一个新的配置文件,并在该配置文件中设置自动保存文件的参数。具体步骤如下:/Applications/Firefox.app/Contents/MacOS/firefox-bin -ProfileManager
- 打开终端,输入以下命令打开Firefox的ProfileManager:
- 在ProfileManager中,点击"Create Profile"按钮,然后按照提示创建一个新的配置文件。
- 在新的配置文件中,打开Firefox浏览器,输入"about:config"并回车。
- 在搜索框中输入"browser.download.folderList",将其值修改为2,表示将文件保存到指定目录。
- 在搜索框中输入"browser.download.dir",将其值修改为你想要保存文件的目录路径。
- 在搜索框中输入"browser.helperApps.neverAsk.saveToDisk",将其值修改为你想要自动保存的文件类型的MIME类型。例如,如果你想要自动保存PDF文件,可以将其值修改为"application/pdf"。
- 关闭并重新打开Firefox浏览器,然后尝试下载文件,看是否能够自动保存而不弹出下载弹出框。
- 使用其他浏览器:
如果以上方法仍然无法解决问题,可以尝试使用其他浏览器,如Chrome或Safari,来进行自动化测试。这些浏览器可能对于文件下载的处理方式更加符合预期。
总结:
在Python2.7+ Selenium 3.8 + Firefox57 + MacOS Sierra的环境中,设置browser.helperApps.neverAsk.openFile后仍然出现下载弹出框的问题可能是由于Firefox版本升级导致该参数失效。可以通过创建新的Firefox配置文件或使用Firefox的ProfileManager来设置自动保存文件的参数,或者尝试使用其他浏览器来解决该问题。