UNPKG

@luminati-io/webdriverio8

Version:

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

39 lines 3.76 kB
import WebDriver from '@luminati-io/webdriverio8-webdriver'; import logger from '@wdio/logger'; import ProtocolStub from '../protocol-stub.js'; import detectBackend from './detectBackend.js'; import { SupportedAutomationProtocols } from '../constants.js'; const log = logger('webdriverio'); export async function getProtocolDriver(options) { if (options.automationProtocol === SupportedAutomationProtocols.stub) { return { Driver: ProtocolStub, options }; } /** * return `devtools` if explicitly set */ if (options.automationProtocol === SupportedAutomationProtocols.devtools || options.automationProtocol?.startsWith('/@fs/')) { try { const DevTools = await import(options.automationProtocol); log.info('Starting session using Chrome DevTools as automation protocol and Puppeteer as driver'); return { Driver: DevTools.default, options }; } catch (err) { throw new Error(`Failed to import "${options.automationProtocol}" as automation protocol driver!\n` + (options.automationProtocol === SupportedAutomationProtocols.devtools ? 'Make sure to have it installed as dependency (`npm i devtools`)!\n' : '') + `Error: ${err.message}`); } } if (options.automationProtocol === SupportedAutomationProtocols.webdriver) { /** * update connection parameters if we are running in a cloud */ if (typeof options.user === 'string' && typeof options.key === 'string') { Object.assign(options, detectBackend(options)); } return { Driver: WebDriver, options }; } throw new Error(`Undefined or unsupported automation protocol "${options.automationProtocol}"`); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJpdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2RyaXZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFNBQVMsTUFBTSxXQUFXLENBQUE7QUFDakMsT0FBTyxNQUFNLE1BQU0sY0FBYyxDQUFBO0FBRWpDLE9BQU8sWUFBWSxNQUFNLHFCQUFxQixDQUFBO0FBQzlDLE9BQU8sYUFBYSxNQUFNLG9CQUFvQixDQUFBO0FBQzlDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRzlELE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUVqQyxNQUFNLENBQUMsS0FBSyxVQUFVLGlCQUFpQixDQUFFLE9BQXNCO0lBQzNELElBQUksT0FBTyxDQUFDLGtCQUFrQixLQUFLLDRCQUE0QixDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxDQUFBO0lBQzVDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksT0FBTyxDQUFDLGtCQUFrQixLQUFLLDRCQUE0QixDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsa0JBQWtCLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDMUgsSUFBSSxDQUFDO1lBQ0QsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUE7WUFDekQsR0FBRyxDQUFDLElBQUksQ0FBQyx1RkFBdUYsQ0FBQyxDQUFBO1lBQ2pHLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQTtRQUNoRCxDQUFDO1FBQUMsT0FBTyxHQUFZLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUNYLHFCQUFxQixPQUFPLENBQUMsa0JBQWtCLG9DQUFvQztnQkFDbkYsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEtBQUssNEJBQTRCLENBQUMsUUFBUTtvQkFDakUsQ0FBQyxDQUFDLG9FQUFvRTtvQkFDdEUsQ0FBQyxDQUFDLEVBQUUsQ0FDUDtnQkFDRCxVQUFXLEdBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FDckMsQ0FBQTtRQUNMLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsa0JBQWtCLEtBQUssNEJBQTRCLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDeEU7O1dBRUc7UUFDSCxJQUFJLE9BQU8sT0FBTyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksT0FBTyxPQUFPLENBQUMsR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3RFLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO1FBQ2xELENBQUM7UUFFRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsQ0FBQTtJQUN6QyxDQUFDO0lBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsT0FBTyxDQUFDLGtCQUFrQixHQUFHLENBQUMsQ0FBQTtBQUNuRyxDQUFDIn0=