【问题标题】:Unable to over-ride "save" options while invoking firefox from selenium-python从 selenium-python 调用 firefox 时无法覆盖“保存”选项
【发布时间】:2021-12-16 00:00:18
【问题描述】:

下面是代码,我用来调用firefox从网站下载xlsx文件。

from selenium import webdriver

options=webdriver.FirefoxOptions()
dest_dir = "myDir"

print (options.preferences)
#options.set_preference('profile', profile_path)
#options.set_preference("browser.download.useDownloadDir",True)
options.set_preference("browser.download.folderList",2)
options.set_preference("browser.download.dir",dest_dir)
options.set_preference("browser.download.manager.showWhenStarting",False)
options.set_preference("browser.helperApps.neverAsk.saveToDisk","application/xlsx/xls")
print (options.preferences)

driver = webdriver.Firefox(options=options)

即使有这些选项,每次我调用 firefox 时,它都会请求以下问题。

编辑:更改后 options.set_preference("browser.helperApps.neverAsk.saveToDisk","application/xlsx/xls")options.set_preference("browser.helperApps.neverAsk.saveToDisk","application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") 问题得到解决。因此,我为 xlsx 文件提供了错误的 MIME 类型。参考What is a correct MIME type for .docx, .pptx, etc.? 以获得正确的类型。

非常感谢 @cruisepandey 和 @djmonki 的帮助

【问题讨论】:

  • 根据下面的@cruisepandey 解决方案,您需要用逗号将您的 mime 类型分隔为 options.set_preference("browser.helperApps.neverAsk.saveToDisk","application/xlsx, application/xls")
  • @djmonki,是的,这是一个错误。但是单独解决这个问题并不能解决问题
  • @cruisepandey 还有以下内容:options.set_preference("browser.download.panel.shown", False)
  • @djmonki,使用逗号分隔,并将正确的 MIME 类型传递给“browser.helperApps.neverAsk.saveToDisk”为我解决了这个问题。
  • 很好地解决了它

标签: python-3.x selenium selenium-webdriver firefox


【解决方案1】:

我通常会在我的项目中调用这些首选项,并且它们可以无缝地工作。

代码:

options.set_preference("browser.download.panel.shown", False)
options.set_preference("browser.helperApps.neverAsk.openFile","text/csv,application/vnd.ms-excel")
options.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/msword, application/csv, application/ris, text/csv, image/png, application/pdf, text/html, text/plain, application/zip, application/x-zip, application/x-zip-compressed, application/download, application/octet-stream");
options.set_preference("browser.download.manager.showWhenStarting", False);
options.set_preference("browser.download.manager.alertOnEXEOpen", False);
options.set_preference("browser.download.manager.focusWhenStarting", False);
options.set_preference("browser.download.folderList", 2);
options.set_preference("browser.download.useDownloadDir", True);
options.set_preference("browser.helperApps.alwaysAsk.force", False);
options.set_preference("browser.download.manager.alertOnEXEOpen", False);
options.set_preference("browser.download.manager.closeWhenDone", True);
options.set_preference("browser.download.manager.showAlertOnComplete", False);
options.set_preference("browser.download.manager.useWindow", False);
options.set_preference("services.sync.prefs.sync.browser.download.manager.showWhenStarting", False);
options.set_preference("pdfjs.disabled", True);
options.set_preference("browser.download.dir", "C:\\Users\\userid\\Desktop\\Automation")

【讨论】:

  • 感谢您的建议,对我很有用。我已经用实际修复更新了我的问题。
【解决方案2】:

改变后

options.set_preference("browser.helperApps.neverAsk.saveToDisk","application/xlsx/xls")

options.set_preference("browser.helperApps.neverAsk.saveToDisk","application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")

问题已解决。因此,我为 xlsx 文件提供了错误的 MIME 类型。参考What is a correct MIME type for .docx, .pptx, etc.? 以获得正确的类型。

非常感谢 @cruisepandey 和 @djmonki 的帮助

【讨论】:

    猜你喜欢
    • 2021-04-28
    • 1970-01-01
    • 1970-01-01
    • 2018-07-08
    • 2017-10-24
    • 2012-10-13
    • 1970-01-01
    • 1970-01-01
    • 2013-01-26
    相关资源
    最近更新 更多