量角器测试失败时如何截取屏幕截图?

时间:2018-03-26 16:12:50

标签: angularjs selenium protractor angularjs-e2e

我是Protractor的新手并试图弄清楚当我的测试失败时如何拍摄屏幕截图..我已经尝试过使用protractor-jasmine2-screenshot-reporter但它似乎无法正常工作.. 有人使用不同的插件吗?或者知道为什么上面的那个没有?

感谢。

3 个答案:

答案 0 :(得分:0)

来自http://www.protractortest.org/#/debugging#taking-screenshots

// at the top of the test spec:
var fs = require('fs');

// ... other code

// abstract writing screen shot to a file
function writeScreenShot(data, filename) {
  var stream = fs.createWriteStream(filename);

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

// ...

// within a test:
browser.takeScreenshot().then(function (png) {
  writeScreenShot(png, 'exception.png');
});

答案 1 :(得分:0)

最终我发现了一些帮助我的gitHub回购。 如果有人遇到解决问题的问题,您可以使用:

https://gist.github.com/jlouros/190d654850f8e2ed7b51ed6267f30400

非常适合我。

答案 2 :(得分:0)

运行以下命令以安装Protractor html ScreenShot报告

 $ npm install protractor-html-screenshot-reporter --save-dev

在使用

更新Protractor.conf.js之后
 var Jasmine2HtmlReporter = require('/usr/lib/node_modules/protractor-jasmine2-html-reporter');
  onPrepare() {     
                jasmine.getEnv().addReporter(
                new Jasmine2HtmlReporter({
                savePath: 'Mention location of your test result',
                fileName: 'Test Result',
                fileNameDateSuffix: true , 
                takeScreenShotsOnlyForFailedSpecs: true,       
         }),
     new SpecReporter({ spec: { displayStacktrace: true } })
  );

在这个位置,它将创建一个名为" ScreenShots"的隔行文件夹。并保存所有屏幕截图

 "savePath: 'Mention location of your test result'"