@luminati-io/webdriverio8
Version:
Next-gen browser and mobile automation test framework for Node.js
39 lines • 3.76 kB
JavaScript
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=