python - 使用 selenium 从 Firefox 自动下载 zip 文件
问题描述
我有一个 selenium 脚本来从网站下载文件,我已经使用这些首选项来避免在文件的最终下载时弹出窗口,但我还是在最终结束时弹出了这个窗口。我不需要这个弹出窗口,我的 zip 文件应该会自动下载,请帮助我解决问题。
profile = webdriver.FirefoxProfile()
profile.set_preference('browser.download.folderList', 2) # custom location
profile.set_preference('browser.download.manager.showWhenStarting', False)
profile.set_preference('browser.download.dir', '/tmp')
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/zip')
profile.set_preference("browser.helperApps.alwaysAsk.force", False)
profile.set_preference("browser.download.manager.alertOnEXEOpen", False)
profile.set_preference("browser.download.manager.focusWhenStarting", False)
profile.set_preference("browser.download.manager.useWindow", False)
profile.set_preference("browser.download.manager.showAlertOnComplete", False)
profile.set_preference("browser.download.manager.closeWhenDone", False)
profile.set_preference("browser.download.manager.useWindow", False)
profile.set_preference("services.sync.prefs.sync.browser.download.manager.showWhenStarting", False)
profile.set_preference("pdfjs.disabled", True)
profile.update_preferences()
解决方案
这是因为“应用程序/压缩包”。试试这个:
from selenium import webdriver
profile = webdriver.FirefoxProfile()
profile.set_preference("browser.download.folderList", 2)
profile.set_preference("browser.preferences.instantApply",True)
profile.set_preference("browser.download.manager.showWhenStarting", False)
profile.set_preference("browser.download.manager.showAlertOnComplete", False)
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream") #I realy dont know why application/zip doesnt work here
profile.set_preference("browser.download.dir", 'F:\\drivers')
driver = webdriver.Firefox( firefox_profile = profile,executable_path='F:\\drivers\\geckodriver')
driver.get('https://github.com/mozilla/geckodriver/releases')
driver.find_element_by_xpath('//a[@href="/mozilla/geckodriver/releases/download/v0.29.1/geckodriver-v0.29.1-win64.zip"]').click()
推荐阅读
- material-ui - 如何为material-ui-dropzone的容器设置样式
- python-3.x - 如何在 python 中将包含超出范围 utf-8 或 16 的字符的 unicode 字符串转换为二进制或十六进制?
- django - 如何修复Django中的自动登录?
- mongodb - 如何在 MongoDB Atlas 中获取“完整的数据库名称”?
- ionic-framework - 修复启动图像 ionic v1 后无法在 iphone x 中查看电池状态
- ubuntu - 从外部 IP 地址访问主机
- javascript - 访问 iFrame 中的数据属性?
- javascript - 从javascript中的文本文件中读取特定单词
- protractor - 如何使用量角器使鼠标悬停在一段文本上
- informix - Informix dbexport 失败并出现错误 -425 数据库当前由另一个用户打开?