integration/utils/Window.js (23 lines of code) (raw):

class Window { constructor(driver) { this.driver = driver; } static async getDefaultWindow(driver, name) { const window = new Window(driver); window.handle = await driver.getWindowHandle(); window.name = name; return window; } static async createNewWindow(driver, name) { const window = new Window(driver); await window.driver.switchTo().newWindow('tab'); window.handle = await driver.getWindowHandle(); window.name = name; return window; } async run(commands) { await this.driver.switchTo().window(this.handle); await commands(); } } module.exports = Window;