【发布时间】:2020-07-04 22:49:22
【问题描述】:
我在 NodeJS 中进行了一项测试,该测试使用云上的 Google Chrome (BrowserStack) 从网站下载文件。我正在尝试将文件下载到我项目中的目录。我知道我必须通过 Chrome 选项进行设置,但此处没有发布的答案似乎有效。
有人可以分享一个如何使用 NodeJS 完成的示例吗?以下是我尝试过的一个示例,但它不起作用。
module.exports.createChromeDriver = async function () {
if (parameters.runOnCloud === true) {
await filesDirectory.createAppDirIfRequired(paths.tempDir, paths.downloadDirName);
let capabilities = {
'name' : parameters.report,
'browserName' : 'Chrome',
'browser_version' : '79.0',
'os' : 'OS X',
'os_version' : 'Mojave',
'resolution' : '1920x1080',
'browserstack.user' : credentials.browserstack.user,
'browserstack.key' : credentials.browserstack.key,
'browserstack.local' : 'true',
'browserstack.localIdentifier': parameters.bsLocalIdentifier,
'browserstack.networkLogs' : 'false',
}
if (parameters.tests === "wallet-web") {
capabilities['browserstack.networkLogs'] = 'true';
}
let options = new chrome.Options();
const prefs = {'download.default_directory' : paths.downloadsDir};
options.addArguments('prefs', prefs);
options.merge(capabilities);
let driver = await new Builder().
usingServer('http://hub-cloud.browserstack.com/wd/hub').
withCapabilities(capabilities).
build();
return driver;
}
【问题讨论】:
-
请添加您声明downloadsDir的方式。你的操作系统是什么(Windows、Linux)?
-
它只是项目中的一个文件夹路径。 Mac OS Mojave。
-
您可能在 downloadsDir 变量声明中有错误。你是怎么设置的?你确定它不是未定义的吗?您在此脚本中同时拥有 paths.downloadDirName 和 paths.downloadsDir。
-
如果项目中没有使用该名称的目录,那只会在项目中创建目录。
标签: node.js selenium automated-tests