@testim/testim-cli
Version:
Command line interface for running Testing on you CI
52 lines (42 loc) • 4.23 kB
JavaScript
/**
*
* 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
*
*/
;
var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
Object.defineProperty(exports, '__esModule', {
value: true
});
var _fs = require('fs');
var _fs2 = _interopRequireDefault(_fs);
var saveScreenshot = function saveScreenshot(filename) {
return this.screenshot().then(function (res) {
var screenshot = new Buffer(res.value, 'base64');
if (typeof filename === 'string') {
return _fs2['default'].writeFileSync(filename, screenshot);
}
return screenshot;
});
};
exports['default'] = saveScreenshot;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9jb21tYW5kcy9zYXZlU2NyZWVuc2hvdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztrQkF3QmUsSUFBSTs7OztBQUVuQixJQUFJLGNBQWMsR0FBRyxTQUFqQixjQUFjLENBQWEsUUFBUSxFQUFFO0FBQ3JDLFdBQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFDLEdBQUcsRUFBSztBQUNuQyxZQUFJLFVBQVUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFBOztBQUVoRCxZQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsRUFBRTtBQUM5QixtQkFBTyxnQkFBRyxhQUFhLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFBO1NBQ2hEOztBQUVELGVBQU8sVUFBVSxDQUFBO0tBQ3BCLENBQUMsQ0FBQTtDQUNMLENBQUE7O3FCQUVjLGNBQWMiLCJmaWxlIjoic2F2ZVNjcmVlbnNob3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqXG4gKiBTYXZlIGEgc2NyZWVuc2hvdCBhcyBhIGJhc2U2NCBlbmNvZGVkIFBORyB3aXRoIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBicm93c2VyLiBCZSBhd2FyZSB0aGF0IHNvbWUgU2VsZW5pdW0gZHJpdmVyXG4gKiBhcmUgdGFraW5nIHNjcmVlbnNob3RzIG9mIHRoZSB3aG9sZSBkb2N1bWVudCAoZS5nLiBwaGFudG9tanMpIGFuZCBvdGhlcnMgb25seSBvZiB0aGUgY3VycmVudCB2aWV3cG9ydC4gSWYgeW91IHdhbnRcbiAqIHRvIGFsd2F5cyBiZSBzdXJlIHRoYXQgdGhlIHNjcmVlbnNob3QgaGFzIHRoZSBzaXplIG9mIHRoZSB3aG9sZSBkb2N1bWVudCwgdXNlIFtXZWJkcml2ZXJDU1NdKGh0dHBzOi8vZ2l0aHViLmNvbS93ZWJkcml2ZXJpby93ZWJkcml2ZXJjc3MpXG4gKiB0byBlbmhhbmNlIHRoaXMgY29tbWFuZCB3aXRoIHRoYXQgZnVuY3Rpb25hbGl0eS5cbiAqXG4gKiA8ZXhhbXBsZT5cbiAgICAgOnNhdmVTY3JlZW5zaG90LmpzXG4gICAgIC8vIHJlY2VpdmUgc2NyZWVuc2hvdCBhcyBCdWZmZXJcbiAgICAgY2xpZW50LnNhdmVTY3JlZW5zaG90KGZ1bmN0aW9uKGVyciwgc2NyZWVuc2hvdCwgcmVzcG9uc2UpIHsgLi4uIH0pO1xuICAgICAvLyBzYXZlIHNjcmVlbnNob3QgdG8gZmlsZSBhbmQgcmVjZWl2ZSBhcyBCdWZmZXJcbiAgICAgY2xpZW50LnNhdmVTY3JlZW5zaG90KCcuL3NuYXBzaG90LnBuZycsIGZ1bmN0aW9uKGVyciwgc2NyZWVuc2hvdCwgcmVzcG9uc2UpIHsgLi4uIH0pO1xuICAgICAvLyBzYXZlIHNjcmVlbnNob3QgdG8gZmlsZVxuICAgICBjbGllbnQuc2F2ZVNjcmVlbnNob3QoJy4vc25hcHNob3QucG5nJyk7XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogQHBhcmFtIHtGdW5jdGlvbnxTdHJpbmc9fSAgIGZpbGVuYW1lICAgIHBhdGggdG8gdGhlIGdlbmVyYXRlZCBpbWFnZSAocmVsYXRpdmUgdG8gdGhlIGV4ZWN1dGlvbiBkaXJlY3RvcnkpXG4gKlxuICogQHVzZXMgcHJvdG9jb2wvc2NyZWVuc2hvdFxuICogQHR5cGUgdXRpbGl0eVxuICpcbiAqL1xuXG5pbXBvcnQgZnMgZnJvbSAnZnMnXG5cbmxldCBzYXZlU2NyZWVuc2hvdCA9IGZ1bmN0aW9uIChmaWxlbmFtZSkge1xuICAgIHJldHVybiB0aGlzLnNjcmVlbnNob3QoKS50aGVuKChyZXMpID0+IHtcbiAgICAgICAgbGV0IHNjcmVlbnNob3QgPSBuZXcgQnVmZmVyKHJlcy52YWx1ZSwgJ2Jhc2U2NCcpXG5cbiAgICAgICAgaWYgKHR5cGVvZiBmaWxlbmFtZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiBmcy53cml0ZUZpbGVTeW5jKGZpbGVuYW1lLCBzY3JlZW5zaG90KVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHNjcmVlbnNob3RcbiAgICB9KVxufVxuXG5leHBvcnQgZGVmYXVsdCBzYXZlU2NyZWVuc2hvdFxuIl19