【发布时间】:2017-05-22 09:53:13
【问题描述】:
我想在 Google Chrome 上运行文件下载的 e2e 测试。我提到了几个帖子,包括Protractor - Jasmine - Download file to a relative path、Protractor e2e test case for downloading pdf file 和Setting chromedriver preferences on protractor tests,但它们并没有让我满意。
这是我的量角器配置的简要介绍。
...
'os': 'Windows',
'os_version': '8.1',
'browserName': 'Chrome',
'version': '55',
'chromeOptions': {
args: ['--no-sandbox', '--test-type=browser'],
prefs: {
download: {
'prompt_for_download': false,
'directory_upgrade': true,
'default_directory': '/tmp'
}
}
}
...
这是我的测试规范。
it('file download test', () => {
let filePath = path.resolve('/tmp/' + download-filename);
// unlink(filePath);
// click on a link by invoking anchor_element.click()
// at the moment, file download will be done on chrome
// with no prompt experienced
// wait until file has been downloaded,
// (in fact, download can be finished within a sec)
browser.wait(
() => fs.existsSync(filePath),
10000
).then(() => {
// and then expectations here
});
});
所以就我而言,文件已成功下载,但chromeOptions 似乎不起作用,因为文件未下载到'default_directory' 中给出的目录中。
我做错了什么?或者在我的情况下,默认情况下使用 chrome 下载的文件在哪里?
我正在将 BrowserStack 用于 selenium 服务器并运行本地测试。
我正在使用getMultiCapabilities 选项配置具有多种功能的量角器。
希望有人能给我一些关键提示。
【问题讨论】:
-
您必须在 default_directory 中提供绝对路径。
标签: download protractor