【发布时间】:2015-11-23 13:45:08
【问题描述】:
通过 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
但是,文件对话框仍然出现。我已经打开和关闭了相当多的切换字段,但是经过一番挖掘后,我发现 Selenium 生成的默认 Firefox 配置文件的 prefs.js 文件和其中一个的 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 文件是否已下载到驱动器。 p>
【问题讨论】:
-
我也在努力寻找解决方案。我找到了这个github.com/seleniumhq/selenium-google-code-issue-archive/issues/…
-
我使用的是 Firefox 版本 50.1.0。和RS硒。出现提示下载失败。然而,在某些情况下它是有效的。我会写一个重新评分的回复。
标签: python selenium firefox download rselenium