Protractor 量角器;胡克后的黄瓜不';I don’我没有按预期工作
出于某种原因,我在cucumberjs中编写了一个基本的after hook,它不能按预期工作。当场景失败时,它应该附加屏幕截图并编写浏览器控制台日志。但它在html报告中的功能之后附加了屏幕截图,并在第二个场景之间打印浏览器控制台日志。有什么问题吗Protractor 量角器;胡克后的黄瓜不';I don’我没有按预期工作,protractor,cucumberjs,Protractor,Cucumberjs,出于某种原因,我在cucumberjs中编写了一个基本的after hook,它不能按预期工作。当场景失败时,它应该附加屏幕截图并编写浏览器控制台日志。但它在html报告中的功能之后附加了屏幕截图,并在第二个场景之间打印浏览器控制台日志。有什么问题吗 this.After(function(scenario, callback) { if (scenario.isFailed()) { global.browser.takeScre
this.After(function(scenario, callback) {
if (scenario.isFailed()) {
global.browser.takeScreenshot().then(function(base64png) {
var decodedImage = new Buffer(base64png,'base64').toString('binary');
scenario.attach(decodedImage, 'image/png');
});
global.browser.manage().logs().get('browser').then(function (browserlog){
browserlog.forEach(function (log) {
if (log.level.value > 900) {
console.error(log.message.substring(log.message.indexOf('Error'),log.message.indexOf('\n')))
}
})
});
callback();
} else {
callback();
}
});
根据cucumberjs github页面 可以使用stream.Readable附加图像和其他二进制数据。在这种情况下,必须向attach()传递回调: 您可以将单个after挂钩拆分为两个单独的挂钩:
this.After(function(scenario, next) {
browser.takeScreenshot().then(function(png) {
var decodedImage = new Buffer(png, 'base64').toString('binary');
scenario.attach(decodedImage, 'image/png', next);
}, function(err) {
next(err);
});
});
this.After(function(scenario, next) {
global.browser.manage().logs().get('browser').then(function (browserlog){
browserlog.forEach(function (log) {
if (log.level.value > 900) {
console.error(log.message.substring(log.message.indexOf('Error'),log.message.indexOf('\n')))
}
});
});
});
根据cucumberjs github页面 可以使用stream.Readable附加图像和其他二进制数据。在这种情况下,必须向attach()传递回调: 您可以将单个after挂钩拆分为两个单独的挂钩:
this.After(function(scenario, next) {
browser.takeScreenshot().then(function(png) {
var decodedImage = new Buffer(png, 'base64').toString('binary');
scenario.attach(decodedImage, 'image/png', next);
}, function(err) {
next(err);
});
});
this.After(function(scenario, next) {
global.browser.manage().logs().get('browser').then(function (browserlog){
browserlog.forEach(function (log) {
if (log.level.value > 900) {
console.error(log.message.substring(log.message.indexOf('Error'),log.message.indexOf('\n')))
}
});
});
});