在 Selenium 中自动下载 .csv

Automatically downloading .csv in Selenium

我有以下代码:

element_search_field = browser.find_element_by_id(search_field_id)
op.set_preference("browser.download.folderList",2)
op.set_preference("browser.download.manager.showWhenStarting", False)
op.set_preference("browser.download.dir","C:\Users\user\Selenium")
op.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream,application/vnd.csv")

downloadcsv =  browser.find_element_by_css_selector('#downloadOCTable')
downloadcsv.click();

我在最后一行遇到问题 downloadcsv.click();。我希望从 "application/octet-stream,application/vnd.ms-excel") 更改 "application/octet-stream,application/vnd.csv") 会自动将 .csv 文件保存到下载文件夹,但我仍然得到 DialogBox。无论如何我可以在没有 DiaglogBox 的情况下保存它吗?

编辑:

根据@Prophet 的建议:

我已经进行了这些更改,但我仍然看到弹出窗口

配置文件 = FirefoxProfile() profile.set_preference("general.useragent.override", userAgent)

profile.set_preference("browser.download.dir", "C:\Users\[user]\Selenium Options")
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/csv,application/excel,application/vnd.ms-excel,application/vnd.msexcel,text/anytext,text/comma-separated-values,text/csv,text/plain,text/x-csv,application/x-csv,text/x-comma-separated-values,text/tab-separated-values,data:text/csv")
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/xml,text/plain,text/xml,image/jpeg,application/octet-stream,data:text/csv")
profile.set_preference("browser.download.folderList",2)
profile.set_preference("browser.download.manager.showWhenStarting",False)
profile.set_preference("browser.helperApps.neverAsk.openFile","application/csv,application/excel,application/vnd.ms-excel,application/vnd.msexcel,text/anytext,text/comma-separated-values,text/csv,text/plain,text/x-csv,application/x-csv,text/x-comma-separated-values,text/tab-separated-values,data:text/csv")
profile.set_preference("browser.helperApps.neverAsk.openFile","application/xml,text/plain,text/xml,image/jpeg,application/octet-stream,data:text/csv")
profile.set_preference("browser.helperApps.alwaysAsk.force", False)
profile.set_preference("browser.download.useDownloadDir", True)
profile.set_preference("dom.file.createInChild", True)

有几种 csv 应用程序。我们不知道什么对您正在使用的特定网站有效。
我设置了所有这些首选项,到目前为止它在所有情况下都适用于我

op.set_preference("browser.download.dir", downloadsPath)
op.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/csv,application/excel,application/vnd.ms-excel,application/vnd.msexcel,text/anytext,text/comma-separated-values,text/csv,text/plain,text/x-csv,application/x-csv,text/x-comma-separated-values,text/tab-separated-values,data:text/csv")
op.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/xml,text/plain,text/xml,image/jpeg,application/octet-stream,data:text/csv")
op.set_preference("browser.download.folderList",2)
op.set_preference("browser.download.manager.showWhenStarting",False)
op.set_preference("browser.helperApps.neverAsk.openFile","application/csv,application/excel,application/vnd.ms-excel,application/vnd.msexcel,text/anytext,text/comma-separated-values,text/csv,text/plain,text/x-csv,application/x-csv,text/x-comma-separated-values,text/tab-separated-values,data:text/csv")
op.set_preference("browser.helperApps.neverAsk.openFile","application/xml,text/plain,text/xml,image/jpeg,application/octet-stream,data:text/csv")
op.set_preference("browser.helperApps.alwaysAsk.force", False)
op.set_preference("browser.download.useDownloadDir", True)
op.set_preference("dom.file.createInChild", True)

downloadsPath 这是下载文件夹的路径

你应该使用.csv的MIME类型为text/csv,你可以查看rfc4180

以下类型可以帮到您

application/csv
application/x-csv
text/csv
text/comma-separated-values
text/x-comma-separated-values
text/tab-separated-values
text/plain
text/x-csv

所以你可以如下查看

op.set_preference("browser.helperApps.neverAsk.saveToDisk","text/csv,application/octet-stream")    

here is a great discussion happens you can check it