我是量角器的新手,想在浏览器中截取我失败的测试用例的截图。
你能告诉我该如何解决这个问题,请你帮帮我吗?
谢谢:)
答案 0 :(得分:10)
您可以使用protractor-jasmine2-screenshot-reporter
模块,它有一些很好的功能可以满足您的需要。
var HtmlScreenshotReporter = require('protractor-jasmine2-screenshot-reporter');
var reporter = new HtmlScreenshotReporter({
dest: 'target/screenshots',
filename: 'my-report.html',
captureOnlyFailedSpecs: true
});
这将捕获您的规格失败后的屏幕截图,您还有更多选项,您可以查看此链接:https://www.npmjs.com/package/protractor-jasmine2-screenshot-reporter
答案 1 :(得分:3)
请看一下这段代码。在这段代码中,我们正在与jasmine记者正确地注册截图功能。它对我有用。
onPrepare: function() {
jasmine.getEnv().addReporter({
specDone: function(result) {
browser.takeScreenshot().then(function(screenShot) {
// Saving File.
// Param filePath : where you want to store screenShot
// Param screenShot : Screen shot file which you want to store.
fs.writeFile(filePath, screenShot, 'base64', function (err) {
if (err) throw err;
console.log('File saved.');
});
});
}
});
}
我希望它有所帮助! :)
答案 2 :(得分:1)
如果您在protractor.conf.js中使用framework: 'custom'
,则使用Jasmine或Jasmine报告程序似乎无效。
您可以在测试后挂钩中执行以下操作(例如,黄瓜。之后):
protractor.browser.takeScreenshot().then(function(screenshot) {
const screenshots = path.join(process.cwd(), 'e2e/reports/screenshots');
fs.writeFile(screenshots + '/test.png', screenshot, 'base64', function (err) {
if (err) {
throw err;
}
console.log('File saved.');
});
});
答案 3 :(得分:0)
protractor-beautiful-reporter能够构建漂亮的html报告,包括屏幕截图。
安装:
npm install protractor-beautiful-reporter --save-dev
protractor.conf.js
中的配置:
const HtmlReporter = require('protractor-beautiful-reporter');
exports.config = {
// your config here ...
onPrepare: function() {
// Add a screenshot reporter and store screenshots to `/tmp/screenshots`:
jasmine.getEnv().addReporter(new HtmlReporter({
baseDirectory: 'target/screenshots',
takeScreenShotsOnlyForFailedSpecs: true
}).getJasmine2Reporter());
}
}