UNPKG

@luminati-io/webdriverio8

Version:

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

52 lines 3.63 kB
import logger from '@wdio/logger'; const log = logger('webdriverio'); /** * * Creates a new Selenium session with your current capabilities. This is useful if you * test highly stateful application where you need to clean the browser session between * the tests in your spec file to avoid creating hundreds of single test files with WDIO. * Be careful though, this command affects your test time tremendously since spawning * new Selenium sessions is very time consuming especially when using cloud services. * * <example> :reloadSync.js it('should reload my session with current capabilities', async () => { console.log(browser.sessionId) // outputs: e042b3f3cd5a479da4e171825e96e655 await browser.reloadSession() console.log(browser.sessionId) // outputs: 9a0d9bf9d4864160aa982c50cf18a573 }) * </example> * * @alias browser.reloadSession * @type utility * */ export async function reloadSession() { const oldSessionId = this.sessionId; /** * end current running session, if session already gone suppress exceptions */ try { await this.deleteSession({ shutdownDriver: false }); } catch (err) { /** * ignoring all exceptions that could be caused by browser.deleteSession() * there maybe times where session is ended remotely, browser.deleteSession() will fail in this case) * this can be worked around in code but requires a lot of overhead */ log.warn(`Suppressing error closing the session: ${err.stack}`); } if (this.puppeteer?.isConnected()) { this.puppeteer.disconnect(); log.debug('Disconnected puppeteer session'); } const ProtocolDriver = (await import(this.options.automationProtocol)).default; await ProtocolDriver.reloadSession(this); const options = this.options; if (Array.isArray(options.onReload) && options.onReload.length) { await Promise.all(options.onReload.map((hook) => hook(oldSessionId, this.sessionId))); } return this.sessionId; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsb2FkU2Vzc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9icm93c2VyL3JlbG9hZFNlc3Npb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxNQUFNLE1BQU0sY0FBYyxDQUFBO0FBR2pDLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUVqQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGFBQWE7SUFDL0IsTUFBTSxZQUFZLEdBQUksSUFBNEIsQ0FBQyxTQUFTLENBQUE7SUFFNUQ7O09BRUc7SUFDSCxJQUFJLENBQUM7UUFDRCxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtJQUN2RCxDQUFDO0lBQUMsT0FBTyxHQUFRLEVBQUUsQ0FBQztRQUNoQjs7OztXQUlHO1FBQ0gsR0FBRyxDQUFDLElBQUksQ0FBQywwQ0FBMEMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUE7SUFDbkUsQ0FBQztJQUVELElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUE7UUFDM0IsR0FBRyxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFBO0lBQy9DLENBQUM7SUFFRCxNQUFNLGNBQWMsR0FBRyxDQUFDLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQW1CLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQTtJQUMvRSxNQUFNLGNBQWMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUE7SUFFeEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQTZCLENBQUE7SUFDbEQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzdELE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRyxJQUE0QixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNsSCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUMsU0FBbUIsQ0FBQTtBQUNuQyxDQUFDIn0=