Protractor Cucumber HTML报告的屏幕截图

时间:2015-12-04 08:53:54

标签: protractor

我希望在场景大纲中失败时对所有数据行(示例)采用单独的屏幕截图。

我正在使用以下代码来获取它,但它会覆盖所有失败示例的相同屏幕截图,因为它会覆盖之前的屏幕截图。

请告诉我该怎么做。

样本黄瓜特征:

场景大纲:

鉴于XXXXX"参数1"和"参数2"

XXXX时

然后XXXXX

示例:

|参数1 |参数2 |

| A | B | ---这失败了

| C | d |

| E | F | - 这失败了

我想为数据第1行和第3行分别设置屏幕截图。

if (scenario.isFailed()) {
browser.takeScreenshot()
  .then(function(base64png) {
    var decodedImage = new Buffer(base64png, 'base64').toString('binary');
    scenario.attach(decodedImage, 'image/png');
    callback();
}, function(err) {
  callback(err);
});

}

2 个答案:

答案 0 :(得分:0)

这就是我使用的。请注意,就像cucjs 1.2.0一样,你不再在缓冲区上使用' .toString(' binary')。

    this.After(function(scenario, callback) {
        browser.takeScreenshot().then(function(base64png) {
            var decodedImage = new Buffer(base64png, 'base64');
            scenario.attach(decodedImage, 'image/png', function (error) {
                callback(error);
            });
        }, function(err) {
            callback(err);
        });
    });

答案 1 :(得分:0)

defineSupportCode(({After}) => {
After(function(scenario) {
    if (scenario.isFailed()) {
        var attach = this.attach; 
            return browser.takeScreenshot().then(function(png) {
        var decodedImage = new Buffer(png, "base64");
            return attach(decodedImage, "image/png");
        });
        }
    });
});