UNPKG

@luminati-io/webdriverio8

Version:

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

42 lines 2.4 kB
import fs from 'node:fs'; import { getAbsoluteFilepath, assertDirectoryExists } from '../../utils/index.js'; /** * * Save a video started by [`startRecordingScreen`](/docs/api/appium#startrecordingscreen) command to file. * * :::info * * This command is only supported for mobile sessions running on [Appium](https://appium.github.io/appium.io/docs/en/commands/device/recording-screen/start-recording-screen/). * * ::: * * <example> :saveRecordingScreen.js it('should save a video', async () => { await browser.startRecordingScreen(); await $('~BUTTON').click(); await browser.saveRecordingScreen('./some/path/video.mp4'); }); * </example> * * @alias browser.saveRecordingScreen * @param {String} filepath full or relative to the execution directory path to the generated video * @return {Buffer} video buffer * @type utility * */ export async function saveRecordingScreen(filepath) { /** * type check */ if (typeof filepath !== 'string') { throw new Error('saveRecordingScreen expects a filepath'); } const absoluteFilepath = getAbsoluteFilepath(filepath); await assertDirectoryExists(absoluteFilepath); const videoBuffer = await this.stopRecordingScreen(); const video = Buffer.from(videoBuffer, 'base64'); fs.writeFileSync(absoluteFilepath, video); return video; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZVJlY29yZGluZ1NjcmVlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9icm93c2VyL3NhdmVSZWNvcmRpbmdTY3JlZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQ3hCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBRWpGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Qkc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLG1CQUFtQixDQUVyQyxRQUFnQjtJQUVoQjs7T0FFRztJQUNILElBQUksT0FBTyxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFBO0lBQzdELENBQUM7SUFFRCxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ3RELE1BQU0scUJBQXFCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUU3QyxNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFBO0lBQ3BELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQ2hELEVBQUUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFFekMsT0FBTyxLQUFLLENBQUE7QUFDaEIsQ0FBQyJ9