【发布时间】: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