UNPKG

@luminati-io/webdriverio8

Version:

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

42 lines 2.54 kB
/** * Throttles the CPU to emulate a slower processor. * * :::info * * Note that using the `throttleCPU` command requires support for Chrome DevTools protocol and e.g. * can not be used when running automated tests in the cloud. Find out more in the * [Automation Protocols](/docs/automationProtocols) section. * * ::: * * <example> :throttleCPU.js it('should throttle the CPU', async () => { await browser.throttleCPU(2) // 2x slowdown }); * </example> * * @alias browser.throttleCPU * @param {number} factor slowdown factor (1 is no throttle, 2 is 2x slowdown, etc) * @type utility * */ export async function throttleCPU(factor) { if (typeof factor !== 'number') { throw new Error('Invalid factor for "throttleCPU". Expected it to be a number (int)'); } const failedConnectionMessage = 'No Puppeteer connection could be established which is required to use this command'; // Connect to Chrome DevTools await this.getPuppeteer(); if (!this.puppeteer) { throw new Error(failedConnectionMessage); } const pages = await this.puppeteer.pages(); if (!pages.length) { throw new Error(failedConnectionMessage); } const client = await pages[0].target().createCDPSession(); // Set CPU throttling await client.send('Emulation.setCPUThrottlingRate', { rate: factor }); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyb3R0bGVDUFUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZHMvYnJvd3Nlci90aHJvdHRsZUNQVS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUVILE1BQU0sQ0FBQyxLQUFLLFVBQVUsV0FBVyxDQUU3QixNQUFjO0lBRWQsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLG9FQUFvRSxDQUFDLENBQUE7SUFDekYsQ0FBQztJQUVELE1BQU0sdUJBQXVCLEdBQUcsb0ZBQW9GLENBQUE7SUFFcEgsNkJBQTZCO0lBQzdCLE1BQU0sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFBO0lBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO0lBQzVDLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUE7SUFFMUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUE7SUFDNUMsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLGdCQUFnQixFQUFFLENBQUE7SUFFekQscUJBQXFCO0lBQ3JCLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFBO0FBQ3pFLENBQUMifQ==