browsertime
Version:
Get performance metrics from your web page using Browsertime.
49 lines (45 loc) • 1.33 kB
JavaScript
import intel from 'intel';
const log = intel.getLogger('browsertime.command.screenshot');
/**
* Take a screenshot. The screenshot will be stored to disk,
* named by the name provided to the take function.
*
* @class
* @hideconstructor
*/
export class Screenshot {
constructor(screenshotManager, browser, index) {
/**
* @private
*/
this.screenshotManager = screenshotManager;
/**
* @private
*/
this.browser = browser;
/**
* @private
*/
this.index = index;
}
/**
* Takes a screenshot and saves it using the screenshot manager.
*
* @async
* @example async commands.screenshot.take('my_startpage');
* @param {string} name The name to assign to the screenshot file.
* @throws {Error} Throws an error if the name parameter is not provided.
* @returns {Promise<Object>} A promise that resolves with the screenshot details.
*/
async take(name) {
if (!name) {
log.error('Missing name for the screenshot');
throw new Error(`Could not store screenshot for missing name`);
}
const url = await this.browser
.getDriver()
.executeScript('return document.documentURI;');
const screenshot = await this.browser.takeScreenshot();
return this.screenshotManager.save(name, screenshot, url, this.index);
}
}