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

时间:2016-01-21 19:51:12

标签: continuous-integration protractor screenshot

运行量角器,我想调用屏幕截图作为我的规范的一部分。 我不想在每次测试时都截取屏幕截图,这些“记者”会在每次测试,每次测试失败或每次测试一次时接受它们。 这一切都非常元,但更重要的是我只想要一张照片,并保存在Bamboo CI服务器上。 我从哪里开始?

2 个答案:

答案 0 :(得分:1)

使用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();
});

答案 1 :(得分:1)

我为这个https://www.npmjs.com/package/screenshot-protractor

制作了一个npm模块

使用以下命令将模块添加到项目中:

npm install screenshot-protractor --save

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

onPrepare: function() {

}

在你的onPrepare里面,加上这一行:

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

然后在spec.js文件中添加

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