Skip to main content

newWindow

Open new window or tab in browser (defaults to a new window if not specified). This command is the equivalent function to window.open(). This command does not work in mobile environments.

Note: When calling this command you automatically switch to the new window or tab.

Usage
browser.newWindow(url, { type, windowName, windowFeatures })
Parameters
NameTypeDetails
urlstringwebsite URL to open
options
optional
NewWindowOptionsnewWindow command options
options.type
optional
stringtype of new window: 'tab' or 'window'
options.windowName
optional
Stringname of the new window
options.windowFeatures
optional
Stringfeatures of opened window (e.g. size, position, scrollbars, etc.)
Examples
newWindowSync.js
it('should open a new window', async () => {
await browser.url('https://google.com')
console.log(await browser.getTitle()) // outputs: "Google"

const result = await browser.newWindow('https://webdriver.io', {
windowName: 'WebdriverIO window',
windowFeature: 'width=420,height=230,resizable,scrollbars=yes,status=1',
})
console.log(await browser.getTitle()) // outputs: "WebdriverIO · Next-gen browser and mobile automation test framework for Node.js"
console.log(result.type) // outputs: "window"
const handles = await browser.getWindowHandles()
await browser.switchToWindow(handles[1])
await browser.closeWindow()
await browser.switchToWindow(handles[0])
console.log(await browser.getTitle()) // outputs: "Google"
});

newTabSync.js
  it('should open a new tab', async () => {
await browser.url('https://google.com')
console.log(await browser.getTitle()) // outputs: "Google"

await browser.newWindow('https://webdriver.io', {
type:'tab',
windowName: 'WebdriverIO window',
windowFeature: 'width=420,height=230,resizable,scrollbars=yes,status=1',
})
console.log(await browser.getTitle()) // outputs: "WebdriverIO · Next-gen browser and mobile automation test framework for Node.js"
console.log(result.type) // outputs: "tab"
const handles = await browser.getWindowHandles()
await browser.switchToWindow(handles[1])
await browser.closeWindow()
await browser.switchToWindow(handles[0])
console.log(await browser.getTitle()) // outputs: "Google"
});
Throws
  • throws: If url is invalid, if the command is used on mobile, or type is not 'tab' or 'window'.

Welcome! How can I help?

WebdriverIO AI Copilot