UNPKG

@testim/testim-cli

Version:

Command line interface for running Testing on you CI

52 lines (42 loc) 4.23 kB
/** * * 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'; 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