python – 使用Selenium和Firefox版本40,我如何下载文件?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 使用Selenium和Firefox版本40,我如何下载文件?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2881字,纯文字阅读大概需要5分钟。
内容图文
![python – 使用Selenium和Firefox版本40,我如何下载文件?](/upload/InfoBanner/zyjiaocheng/773/4095e8a17b584bbda063f454e9bdcbf9.jpg)
通过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文件的方法.有谁有想法吗?
为了抢先任何人建议我只是下载URL,该文件是为用户生成的,我需要专门验证.pdf文件是否已下载到驱动器.
解决方法:
我是一个R用户,所以只需使用RSelenium在R中发布我的解决方案.如果你无法在python中转换相同的信息,请告诉我,我会暗示相同的.
known_formats <- c("application/vnd.ms-excel","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
firefox_profile.me <- makeFirefoxProfile(list(marionette = TRUE,
# this is for certificate issues [may be ignored]
webdriver_accept_untrusted_certs = TRUE,
webdriver_assume_untrusted_issuer = TRUE,
# download related settings
browser.download.folderList = 2L,
browser.download.manager.showWhenStarting = FALSE,
# put your path here but remember to give path like C:\\DirOfYourChoice and not C:\\DirOfYourChoice\\ [last \\ is not going to work]
browser.download.dir = normalizePath("TestDL"),
browser.helperApps.alwaysAsk.force = FALSE,
browser.helperApps.neverAsk.openFile = paste0(known_formats, collapse = ","),
browser.helperApps.neverAsk.saveToDisk = paste0(known_formats, collapse = ","),
browser.download.manager.showWhenStarting = FALSE,
# this is for marionette and related security
"browser.tabs.remote.force-enable" = TRUE,
pdfjs.disabled = TRUE))
remDr <- remoteDriver(remoteServerAddr = "localhost",
port = 4444,
browserName = "firefox",
extraCapabilities = firefox_profile.me)
remDr$open()
remDr$navigate("https://www.google.com/search?q=sample+xlsx")
remDr$findElement(using = "css selector", value = ".g:nth-child(1) a")$clickElement()
remDr$navigate("https://www.google.com/search?q=test+xls")
remDr$findElement(using = "css selector", value = ".g:nth-child(1) a")$clickElement()
和我一起工作
我正在使用
Firefox 50.1.0 [while I'm writing this post]
Selenium [3.0.1]
R [3.3.2 (2016-10-31)]
希望你能将这个移植到python.只是尝试在firefox makeFirefoxProfile中复制配置
参考进一步了解: –
How to Download files using Selenium
Firefox Profile Settings in Selenium
内容总结
以上是互联网集市为您收集整理的python – 使用Selenium和Firefox版本40,我如何下载文件?全部内容,希望文章能够帮你解决python – 使用Selenium和Firefox版本40,我如何下载文件?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。