通过 Selenium 下载文件的旧方法似乎不再有效。
我的代码是:
fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.dir", os.getcwd())
fp.set_preference("browser.download.folderList", 2)
fp.set_preference("browser.download.manager.showWhenStarting", False)
fp.set_preference("browser.helperApps.neverAsk.saveToDisk",
"application/pdf")
self.driver = webdriver.Firefox(firefox_profile=fp)
self.longMessage = True
但是,文件对话框仍然出现。我已经打开和关闭了很多切换字段,但是经过一番挖掘后,我发现prefs.js
Selenium 生成的默认 Firefox 配置文件的prefs.js
文件与我手动检查的文件之间没有区别“做从现在开始,这种类型的文件会自动执行此操作”在下载对话框中。
不过,该mimeTypes.rdf
文件确实发生了变化——具体来说,添加了以下几行:
<RDF:Description RDF:about="urn:mimetype:handler:application/pdf"
NC:alwaysAsk="false"
NC:saveToDisk="true"
NC:handleInternal="false">
<NC:externalApplication RDF:resource="urn:mimetype:externalApplication:application/pdf"/>
不过,我不知道在创建新的 Firefox 配置文件时设置自定义 mimeTypes.rdf 文件的方法。有人有什么主意吗?
为了抢占任何建议我只是 cURL 下载 URL 的人,该文件是为用户生成的,我需要专门验证 .pdf 文件是否已下载到驱动器。