/**
*
* Save a screenshot as a base64 encoded PNG with the current state of the browser. Be aware that some Selenium driver
* are taking screenshots of the whole document (e.g. phantomjs) and others only of the current viewport. If you want
* to always be sure that the screenshot has the size of the whole document, use [WebdriverCSS](https://github.com/webdriverio/webdrivercss)
* to enhance this command with that functionality.
*
* <example>
:saveScreenshot.js
// receive screenshot as Buffer
client.saveScreenshot(function(err, screenshot, response) { ... });
// save screenshot to file and receive as Buffer
client.saveScreenshot('./snapshot.png', function(err, screenshot, response) { ... });
// save screenshot to file
client.saveScreenshot('./snapshot.png');
* </example>
*
* @param {Function|String=} filename path to the generated image (relative to the execution directory)
*
* @uses protocol/screenshot
* @type utility
*
*/
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
// istanbul ignore next
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _fs = require('fs');
var _fs2 = _interopRequireDefault(_fs);
var saveScreenshot = function saveScreenshot(filename) {
// istanbul ignore next
var _this = this;
return this.screenshot().then(function (res) {
_this.emit('screenshot', { data: res.value, filename: filename });
var screenshot = new Buffer(res.value, 'base64');
if (typeof filename === 'string') {
_fs2['default'].writeFileSync(filename, screenshot);
}
return screenshot;
});
};
exports['default'] = saveScreenshot;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9jaHJpc3RpYW5icm9tYW5uL1NpdGVzL1dlYnByb2pla3RlL3dlYmRyaXZlcmpzL0RFVi9saWIvY29tbWFuZHMvc2F2ZVNjcmVlbnNob3QuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tCQXdCZSxJQUFJOzs7O0FBRW5CLElBQUksY0FBYyxHQUFHLFNBQWpCLGNBQWMsQ0FBYSxRQUFRLEVBQUU7Ozs7O0FBQ3JDLFdBQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFDLEdBQUcsRUFBSztBQUNuQyxjQUFLLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQVIsUUFBUSxFQUFDLENBQUMsQ0FBQTs7QUFFcEQsWUFBSSxVQUFVLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQTs7QUFFaEQsWUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLEVBQUU7QUFDOUIsNEJBQUcsYUFBYSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQTtTQUN6Qzs7QUFFRCxlQUFPLFVBQVUsQ0FBQTtLQUNwQixDQUFDLENBQUE7Q0FDTCxDQUFBOztxQkFFYyxjQUFjIiwiZmlsZSI6Ii9Vc2Vycy9jaHJpc3RpYW5icm9tYW5uL1NpdGVzL1dlYnByb2pla3RlL3dlYmRyaXZlcmpzL0RFVi9saWIvY29tbWFuZHMvc2F2ZVNjcmVlbnNob3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqXG4gKiBTYXZlIGEgc2NyZWVuc2hvdCBhcyBhIGJhc2U2NCBlbmNvZGVkIFBORyB3aXRoIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBicm93c2VyLiBCZSBhd2FyZSB0aGF0IHNvbWUgU2VsZW5pdW0gZHJpdmVyXG4gKiBhcmUgdGFraW5nIHNjcmVlbnNob3RzIG9mIHRoZSB3aG9sZSBkb2N1bWVudCAoZS5nLiBwaGFudG9tanMpIGFuZCBvdGhlcnMgb25seSBvZiB0aGUgY3VycmVudCB2aWV3cG9ydC4gSWYgeW91IHdhbnRcbiAqIHRvIGFsd2F5cyBiZSBzdXJlIHRoYXQgdGhlIHNjcmVlbnNob3QgaGFzIHRoZSBzaXplIG9mIHRoZSB3aG9sZSBkb2N1bWVudCwgdXNlIFtXZWJkcml2ZXJDU1NdKGh0dHBzOi8vZ2l0aHViLmNvbS93ZWJkcml2ZXJpby93ZWJkcml2ZXJjc3MpXG4gKiB0byBlbmhhbmNlIHRoaXMgY29tbWFuZCB3aXRoIHRoYXQgZnVuY3Rpb25hbGl0eS5cbiAqXG4gKiA8ZXhhbXBsZT5cbiAgICAgOnNhdmVTY3JlZW5zaG90LmpzXG4gICAgIC8vIHJlY2VpdmUgc2NyZWVuc2hvdCBhcyBCdWZmZXJcbiAgICAgY2xpZW50LnNhdmVTY3JlZW5zaG90KGZ1bmN0aW9uKGVyciwgc2NyZWVuc2hvdCwgcmVzcG9uc2UpIHsgLi4uIH0pO1xuICAgICAvLyBzYXZlIHNjcmVlbnNob3QgdG8gZmlsZSBhbmQgcmVjZWl2ZSBhcyBCdWZmZXJcbiAgICAgY2xpZW50LnNhdmVTY3JlZW5zaG90KCcuL3NuYXBzaG90LnBuZycsIGZ1bmN0aW9uKGVyciwgc2NyZWVuc2hvdCwgcmVzcG9uc2UpIHsgLi4uIH0pO1xuICAgICAvLyBzYXZlIHNjcmVlbnNob3QgdG8gZmlsZVxuICAgICBjbGllbnQuc2F2ZVNjcmVlbnNob3QoJy4vc25hcHNob3QucG5nJyk7XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogQHBhcmFtIHtGdW5jdGlvbnxTdHJpbmc9fSAgIGZpbGVuYW1lICAgIHBhdGggdG8gdGhlIGdlbmVyYXRlZCBpbWFnZSAocmVsYXRpdmUgdG8gdGhlIGV4ZWN1dGlvbiBkaXJlY3RvcnkpXG4gKlxuICogQHVzZXMgcHJvdG9jb2wvc2NyZWVuc2hvdFxuICogQHR5cGUgdXRpbGl0eVxuICpcbiAqL1xuXG5pbXBvcnQgZnMgZnJvbSAnZnMnXG5cbmxldCBzYXZlU2NyZWVuc2hvdCA9IGZ1bmN0aW9uIChmaWxlbmFtZSkge1xuICAgIHJldHVybiB0aGlzLnNjcmVlbnNob3QoKS50aGVuKChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5lbWl0KCdzY3JlZW5zaG90Jywge2RhdGE6IHJlcy52YWx1ZSwgZmlsZW5hbWV9KVxuXG4gICAgICAgIGxldCBzY3JlZW5zaG90ID0gbmV3IEJ1ZmZlcihyZXMudmFsdWUsICdiYXNlNjQnKVxuXG4gICAgICAgIGlmICh0eXBlb2YgZmlsZW5hbWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBmcy53cml0ZUZpbGVTeW5jKGZpbGVuYW1lLCBzY3JlZW5zaG90KVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHNjcmVlbnNob3RcbiAgICB9KVxufVxuXG5leHBvcnQgZGVmYXVsdCBzYXZlU2NyZWVuc2hvdFxuIl19 |