问题描述
我正在尝试在 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 添加到配置文件首选项中。
现在它工作顺利!