I get damaged picture for screenshot. Unable to take screenshot in protractor framework. Please anybody assistance on this.
My code:
testconfig.js file
var fs = require('fs-extra');
var in the present day = new Date(),
timeStamp = in the present day.getMonth() + 1 + '-' + in the present day.getDate() + '-' + in the present day.getFullYear() + '-' + in the present day.getHours() + 'h-' + in the present day.getMinutes() + 'm';
console.log(timeStamp)
exports.config = {
directConnect: true,
// seleniumAddress: 'http://localhost:4444/wd/hub',
capabilities: {
'browserName': 'chrome',//firefox
},
suites: {
regression: '../specs/pattern.js',
},
allScriptsTimeout: 50000,
jasmineNodeOpts: {
onComplete: null,
isVerbose: false,
showColors: true,
includeStackTrace: true,
defaultTimeoutInterval: 999999,
},
framework: 'jasmine2',
onPrepare: operate () {
browser.handle().window().maximize();
browser.waitForAngularEnabled(false);
// var ChercherTechJasmineReporter = reporter.ChercherTechJasmineReporter;
// jasmine.getEnv().addReporter(new ChercherTechJasmineReporter({
// screenshotOnFail :false,
// showSkipped:false,
// browser:browser,
// showLineChart:true
// }));
const SpecReporter = require('jasmine-spec-reporter').SpecReporter;
jasmine.getEnv().addReporter(new SpecReporter({
spec: {
// displayStacktrace: true
displayStacktrace: false
}
}));
//Getting XML report
var jasmineReporters = require('jasmine-reporters');
jasmine.getEnv().addReporter(new jasmineReporters.JUnitXmlReporter({
consolidateAll: true,
filePrefix: 'guitest-xmloutput',
savePath: '.'
}));
fs.emptyDir("https://sqa.stackexchange.com/", operate (err) {
console.log("Error message=",err);
});
jasmine.getEnv().addReporter({
specDone: operate(end result) {
// if (end result.standing == 'failed') {
browser.getCapabilities().then(operate (caps) {
var browserName = caps.get('browserName');
browser.takeScreenshot().then(operate (png) {
// var stream = fs.createWriteStream('screenshots/' + browserName + '-' + end result.fullName+ '.png');
var stream = fs.createWriteStream('./' + browserName + '-' + end result.fullName+ '.png');
// var stream = fs.createWriteStream('./' + '-' + end result.fullName+ '.png');
stream.write(new Buffer(png, 'base64'));
stream.finish();
});
});
// }
}
});
},
// onComplete:operate(exitcode){
// reporter.write_consolidated()
// },
//
// afterLaunch:operate(exitcode){
// return new Promise(operate(resolve){
// reporter.processResults()
// return 0
// })
// },
onComplete: operate() {
var browserName, browserVersion;
var capsPromise = browser.getCapabilities();
capsPromise.then(operate (caps) {
browserName = caps.get('browserName');
browserVersion = caps.get('model');
platform = caps.get('platform');
var HTMLReport = require('protractor-html-reporter-2');
testConfig = {
reportTitle: 'TAP Check Execution Report',
// outputPath: './new/check/scripts/TestReports',
outputPath: './',
outputFilename: 'ProtractorTestReport'+timeStamp,
screenshotPath: './',
testBrowser: browserName,
browserVersion: browserVersion,
modifiedSuiteName: false,
screenshotsOnlyOnFailure: false,
testPlatform: platform
};
new HTMLReport().from('guitest-xmloutput.xml', testConfig);
});
},
SELENIUM_PROMISE_MANAGER: true
};
spec-sample.js file
describe('Protractor - takeScreenshot()', operate () {
it('Code script to make use of takeScreenshot() in protractor', operate () {
browser.get("https://keeplearners.blogspot.com/2018/03/Angular-elements.html");
var textField = ingredient(by.mannequin('identify'));
textField.sendKeys("Entered pattern textual content")
});
} )
output: