如何解决如何在绕过文件对话框的同时使用硒下载CSV文件
我一直试图在Linux-Mint的NodeJS环境中使用Firefox的Selenium Webdriver(geckodriver)访问带有CSV文件的URL,以将其下载到特定目录中。
这是我的代码:
const {Builder} = require('selenium-webdriver');
const firefox = require('selenium-webdriver/firefox');
const path = require('path');
const options = new firefox.Options();
options.setPreference('browser.download.dir',path.resolve(__dirname));
options.setPreference('browser.download.folderList',2);
options.setPreference('browser.helperApps.neverAsk.saveToDisk','application/x-csv');
function example(){
let driver = new Builder().forBrowser('firefox').setFirefoxOptions(options).build();
driver.get('http://insight.dev.schoolwires.com/HelpAssets/C2Assets/C2Files/C2ImportCalEventSample.csv');
}
example();
如您所见,我将浏览器选项正确设置为browser.helperApps.neverAsk.saveToDisk
,以便能够绕过对话框。但是,无论我做什么,仍然会出现对话框。我没有在Windows上尝试过此代码,但是出于我的目的,它需要在Linux上工作。
我错过了什么吗?需要添加或更改某些首选项吗?还是对我当前的环境不起作用?
在此先感谢您提供的帮助。
解决方法
如果您只是从链接下载文件,为什么需要硒?
一种非常简单的方法就是通过http获取文件并将其保存到文件。
const http = require('http');
const fs = require('fs');
const file = fs.createWriteStream("C2ImportCalEventSample.csv");
const request = http.get("http://insight.dev.schoolwires.com/HelpAssets/C2Assets/C2Files/C2ImportCalEventSample.csv",function(response) {
response.pipe(file);
});
如果您必须使用硒,请在评论中让我知道,我将尝试使用硒解决问题的方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。