【问题标题】:Selenium set preferences to download excel file but dialog box pops up?Selenium 设置首选项以下载 excel 文件但弹出对话框?
【发布时间】:2022-01-21 17:23:14
【问题描述】:

我正在尝试使用 selenium firefox 下载 excel 文件。

def download_driver(location_for_download):
    profile = webdriver.FirefoxProfile()
    profile.set_preference("browser.download.folderList", 2)
    profile.set_preference("browser.download.manager.showWhenStarting", False)
    profile.set_preference("browser.download.dir", location_for_download)
    profile.set_preference("browser.helperApps.neverAsk.saveToDisk",
                           "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
    profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/csv")
    profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/plain")
    profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/comma-separated-values")
    profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/xls")
    driver = webdriver.Firefox(firefox_profile=profile)
    return driver

当我在脚本中使用此功能时,会弹出保存文件的对话框。我在ubuntu。我认为MIME-type 是错误的,我已经添加了我能想到和搜索的所有内容。

相关文件显示为2007 excel spreadsheet

【问题讨论】:

    标签: python selenium selenium-webdriver


    【解决方案1】:

    有点不同的解决方案,但工作非常可靠。

    profile = FirefoxProfile()
    profile.set_preference("browser.download.panel.shown", False)
    profile.set_preference("browser.helperApps.neverAsk.openFile","text/csv,application/vnd.ms-excel")
    profile.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");
    profile.set_preference("browser.download.manager.showWhenStarting", False);
    profile.set_preference("browser.download.manager.alertOnEXEOpen", False);
    profile.set_preference("browser.download.manager.focusWhenStarting", False);
    profile.set_preference("browser.download.folderList", 2);
    profile.set_preference("browser.download.useDownloadDir", True);
    profile.set_preference("browser.helperApps.alwaysAsk.force", False);
    profile.set_preference("browser.download.manager.alertOnEXEOpen", False);
    profile.set_preference("browser.download.manager.closeWhenDone", True);
    profile.set_preference("browser.download.manager.showAlertOnComplete", 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);
    

    【讨论】:

      【解决方案2】:

      找到正确的MIME type

      将以下内容添加到函数中使其工作:

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

      留下问题以防其他人来找。

      【讨论】:

        猜你喜欢
        • 2017-05-29
        • 1970-01-01
        • 2023-04-04
        • 2014-09-11
        • 2018-07-08
        • 2021-12-22
        • 1970-01-01
        相关资源
        最近更新 更多