UNPKG

@luminati-io/webdriverio8

Version:

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

43 lines 3.41 kB
import os from 'node:os'; import BaseAction from './base.js'; import { Key } from '../../constants.js'; export default class KeyAction extends BaseAction { constructor(instance, params) { super(instance, 'key', params); } #sanitizeKey(value) { if (typeof value !== 'string') { throw new Error(`Invalid type for key input: "${typeof value}", expected a string!`); } const platformName = this.instance.capabilities.platformName; const isMac = ( // check capabilities first platformName && platformName.match(/mac(\s)*os/i) || // if not set, expect we run locally (this.instance.options.hostname?.match(/0\.0\.0\.0|127\.0\.0\.1|local/i) && os.type().match(/darwin/i))); if (value === Key.Ctrl) { return isMac ? Key.Command : Key.Control; } if (value.length > 1) { throw new Error(`Your key input contains more than one character: "${value}", only one is allowed though!`); } return value; } /** * Generates a key up action. * @param value key value */ up(value) { this.sequence.push({ type: 'keyUp', value: this.#sanitizeKey(value) }); return this; } /** * Generates a key down action. * @param value key value */ down(value) { this.sequence.push({ type: 'keyDown', value: this.#sanitizeKey(value) }); return this; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL2FjdGlvbnMva2V5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUd4QixPQUFPLFVBQVUsTUFBTSxXQUFXLENBQUE7QUFDbEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBRXhDLE1BQU0sQ0FBQyxPQUFPLE9BQU8sU0FBVSxTQUFRLFVBQVU7SUFDN0MsWUFBYSxRQUE2QixFQUFFLE1BQXlCO1FBQ2pFLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQ2xDLENBQUM7SUFFRCxZQUFZLENBQUUsS0FBYTtRQUN2QixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLE9BQU8sS0FBSyx1QkFBdUIsQ0FBQyxDQUFBO1FBQ3hGLENBQUM7UUFFRCxNQUFNLFlBQVksR0FBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQXlDLENBQUMsWUFBWSxDQUFBO1FBQzFGLE1BQU0sS0FBSyxHQUFHO1FBQ1YsMkJBQTJCO1FBQzNCLFlBQVksSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQztZQUNqRCxvQ0FBb0M7WUFDcEMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLGdDQUFnQyxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUMxRyxDQUFBO1FBRUQsSUFBSSxLQUFLLEtBQUssR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3JCLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFBO1FBQzVDLENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsS0FBSyxnQ0FBZ0MsQ0FBQyxDQUFBO1FBQy9HLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQTtJQUNoQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsRUFBRSxDQUFFLEtBQWE7UUFDYixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ3RFLE9BQU8sSUFBSSxDQUFBO0lBQ2YsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksQ0FBRSxLQUFhO1FBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUN4RSxPQUFPLElBQUksQ0FBQTtJQUNmLENBQUM7Q0FDSiJ9