Selenium、Firefox:如何下载由 filesaver.js 创建的 CSV 文件

问题描述

我正在尝试在 Firefox 上使用 Selenium 下载 CSV 文件
在这里看到了几个关于这个问题的类似帖子,所以我的设置已经如下:

String downloadsPath = getFromrepository("common","//downloadsPath");
System.setProperty("webdriver.gecko.driver","./src/main/resources/geckodriver.exe");
FirefoxProfile profile = new FirefoxProfile();
FirefoxOptions options = new FirefoxOptions();
profile.setPreference("browser.download.dir",downloadsPath);
profile.setPreference("browser.download.folderList",2);
profile.setPreference("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");
profile.setPreference("browser.helperApps.neverAsk.savetodisk","application/xml,text/xml,image/jpeg,application/octet-stream");
profile.setPreference("browser.download.manager.showWhenStarting",false);   
profile.setPreference("browser.helperApps.neverAsk.openFile",text/tab-separated-values");  
profile.setPreference("browser.helperApps.neverAsk.openFile",application/octet-stream");
profile.setPreference("browser.helperApps.alwaysAsk.force",false);
options.setProfile(profile);
driver = new FirefoxDriver(options);

但这一切都不起作用,我仍然看到 pop-up dialog
我想这里的问题是因为这个 CSV 文件实际上不是从某个服务器下载的,而是由 file-saver JS
在客户端生成的 我还在开发工具中看到下载此 CSV 文件时没有流量。
我将不胜感激。

解决方法

经过一些研究,我发现对于这种情况,应该将 IF NOT EXISTS(select top 1 1 from Table) BEGIN RAISERROR('Error',1); END; mimeType 添加到配置文件首选项中。
现在它工作顺利!