您好!的
我正在尝试在量角器和browserstack中截取屏幕截图,我有以下 conf.js 文件:
var HtmlReporter = require('protractor-html-screenshot-reporter');
var reporter=new HtmlReporter({
baseDirectory: './protractor-result', // a location to store screen shots.
docTitle: 'Report Test Summary',
docName: 'protractor-tests-report.html'
});
// An example configuration file.
exports.config = {
// The address of a running selenium server.
seleniumAddress: 'http://hub.browserstack.com/wd/hub',
// Capabilities to be passed to the webdriver instance.
capabilities: {
'browserName': 'chrome',
'version': '22.0',
'browserstack.user' : 'user_name',
'browserstack.key' : 'user_key',
'browserstack.debug' : 'true'
},
// Spec patterns are relative to the current working directly when
// protractor is called.
specs: ['./specs/home_page_spec.js'],
// Options to be passed to Jasmine-node.
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000
},
onPrepare: function() {
jasmine.getEnv().addReporter(reporter);
}
};
并且browserstack帮助说我需要添加following lines:
var fs = require('fs');
webdriver.WebDriver.prototype.saveScreenshot = function(filename) {
return driver.takeScreenshot().then(function(data) {
fs.writeFile(filename, data.replace(/^data:image\/png;base64,/,''), 'base64', function(err) {
if(err) throw err;
});
})
};
driver.saveScreenshot('snapshot1.png');
有没有人可以指出我在哪里添加这些线?如何? (我也使用PageObject模式)
答案 0 :(得分:0)
我认为你在谈论两件事,一件是制作截图的插件,另一件是在测试代码中手动创建screeshots,无论插件是什么。
理论上,插件应该为你制作截图。如果没有,您可以使用browserstack提供的代码手动创建它们,只需在测试代码中的任何地方放入一些预期。
无论如何,要从量角器制作屏幕截图,我建议使用protractor-screenshoter-plugin (免责声明:我是作者),您也可以查看Protractor-Screenshots-Alernatives
现在,在其中一个分支机构中,我对并行化有了新的支持。看看https://github.com/azachar/protractor-screenshoter-plugin/tree/feat-parallel-support。
要安装包含并行化支持的不稳定版本,请使用
npm install azachar/protractor-screenshoter-plugin#feat-parallel-support
安装没有并行支持的稳定版本,只需像往常一样输入:
npm install protractor-screenshoter-plugin
让我知道它是否按预期工作!
干杯, 安德烈