如何使用Node.js Selenium Chrome驱动程序设置文件下载目录

时间:2017-10-05 18:58:02

标签: javascript node.js google-chrome selenium webdriver

我正在尝试为我的Node.js Selenium Chrome驱动程序指定文件下载目录。这是我创建Web驱动程序的代码:

var downloadFolder = '/Users/andrew/Desktop';
var driver = new webdriver.Builder()
    .forBrowser('chrome')
    .setChromeOptions(new chrome.Options()
        .setUserPreferences({'download.default_directory': downloadFolder}))
    .build();

我的实验显示我下载的文件仍然转到默认的/Users/andrew/Download文件夹。我在这里做错了吗?顺便使用selenium-webdriver作为我的模块。

4 个答案:

答案 0 :(得分:0)

我使用chromedriver 2.30有类似的问题,如果是这种情况,请尝试将其更新为(当前)最新的2.33版本

答案 1 :(得分:0)

使用Node.js为Chrome驱动程序指定下载目录时,我也遇到了同样的问题。在线进行了一些研究,发现prefs可以在Chrome选项中使用,并且有一种特定的格式化方法。下面的代码为我工作。试试看,让我知道。

var chrome = require('chromedriver');
var chromeCapabilities = webdriver.Capabilities.chrome();
const chromeOption = require('selenium-webdriver/chrome');
//setting chrome options to start the browser fully maximized
var chromeOptions = {
    'args': ['--test-type', '--start-maximized'],
    'prefs': {"download.default_directory":"/home/(user)/Downloads/Chrome_test"}
};
chromeCapabilities.set('chromeOptions', chromeOptions);
var driver = new webdriver.Builder()
  .withCapabilities(chromeCapabilities)
  .build();

答案 2 :(得分:0)

对我来说这项工作是..否则,您可以进入/node_modules/selenium-webdriver/chrome.js 检查功能。

let chrome = require('selenium-webdriver/chrome');
let { Builder } = require('selenium-webdriver');
var driver = new Builder()
.forBrowser('chrome')
.setChromeOptions(new chrome.Options().setUserPreferences(
    { "download.default_directory": task.download_dir }
))
.build();

答案 3 :(得分:0)

我尝试使用以下两个代码,但文件未保存到我的指定路径:

var downloadFolder = 'E:/CannonGroup/DownloadedAPfile';
var driver = new Builder()
    .forBrowser('chrome')
    .setChromeOptions(new chrome.Options()
        .setUserPreferences({'download.default_directory': downloadFolder}))
    .build();
var chromeCapabilities = webdriver.Capabilities.chrome();
var chromeOptions = {
    'prefs': {"download.default_directory":"C:/Raksha"}
};
chromeCapabilities.set('chromeOptions', chromeOptions);
var driver = new webdriver.Builder()
      .withCapabilities(chromeCapabilities)
      .build();