在 Protractor e2e 测试中,如何截取屏幕截图?

In Protractor e2e tests, how can I take a screenshot?

运行 量角器,我想要求截图作为我的规范的一部分。 我不想在每次测试时都截屏,而这些 "reporters" 在每次测试、每次失败的测试或每个规范中都会截屏。 这一切都非常元,但更重要的是我只想拍张照片,并保存在 Bamboo CI 服务器上。 我从哪里开始?

使用takeScreenshot()fs模块:

var fs = require('fs');

browser.takeScreenshot().then(function (data) {
    var stream = fs.createWriteStream('test-results/test.png');

    stream.write(new Buffer(data, 'base64'));
    stream.end();
});

我为此制作了一个 npm 模块 https://www.npmjs.com/package/screenshot-protractor

将模块添加到您的项目中:

npm install screenshot-protractor --save

在您的 conf.js 文件中找到或创建您的 onPrepare 函数。

onPrepare: function() {

}

在你的 onPrepare 中,添加这一行:

global.screenshot = require('screenshot-protractor').saveScreenshot;

然后在 spec.js 文件中,添加

screenshot('path/to/screenshots.png');