UNPKG

@luminati-io/webdriverio8

Version:

Next-gen browser and mobile automation test framework for Node.js

35 lines 2.32 kB
import fs from 'node:fs/promises'; import { getAbsoluteFilepath, assertDirectoryExists } from '../../utils/index.js'; /** * * Save a screenshot of an element to a PNG file on your OS. * * <example> :saveScreenshot.js it('should save a screenshot of the browser view', async () => { const elem = await $('#someElem'); await elem.saveScreenshot('./some/path/elemScreenshot.png'); }); * </example> * * @alias element.saveScreenshot * @param {String} filename path to the generated image (`.png` suffix is required) relative to the execution directory * @return {Buffer} screenshot buffer * @type utility * */ export async function saveScreenshot(filepath) { /** * type check */ if (typeof filepath !== 'string' || !filepath.endsWith('.png')) { throw new Error('saveScreenshot expects a filepath of type string and ".png" file ending'); } const absoluteFilepath = getAbsoluteFilepath(filepath); await assertDirectoryExists(absoluteFilepath); const screenBuffer = await this.takeElementScreenshot(this.elementId); const screenshot = Buffer.from(screenBuffer, 'base64'); await fs.writeFile(absoluteFilepath, screenshot); return screenshot; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZVNjcmVlbnNob3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvZWxlbWVudC9zYXZlU2NyZWVuc2hvdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUNqQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUVqRjs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGNBQWMsQ0FFaEMsUUFBZ0I7SUFFaEI7O09BRUc7SUFDSCxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUM3RCxNQUFNLElBQUksS0FBSyxDQUFDLHlFQUF5RSxDQUFDLENBQUE7SUFDOUYsQ0FBQztJQUVELE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDdEQsTUFBTSxxQkFBcUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBRTdDLE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNyRSxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQTtJQUN0RCxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLENBQUE7SUFFaEQsT0FBTyxVQUFVLENBQUE7QUFDckIsQ0FBQyJ9