t.switchToWindow Method

Switches to a specific browser window. Can be chained with other TestController methods.

t.switchToWindow(window)

Activates the window that corresponds to the window descriptor.

t.switchToWindow(windowDescriptor) → this | Promise<any>
Parameter Type Description
windowDescriptor Object Descriptor object obtained from an open browser window.

Example:

fixture`TestController.switchToWindow`
    .page('https://devexpress.github.io/testcafe/');

test('Switch to a different window', async t => {
    const homepage      = await t.getCurrentWindow();
    const documentation = await t.openWindow('https://devexpress.github.io/testcafe/documentation');

    await t.switchToWindow(homepage)
        .switchToWindow(documentation);
});

t.switchToWindow(predicate)

Activates the first window that matches the criteria passed to the filterFn function.

t.switchToWindow(filterFn);
Parameter Type Description
filterFn Function The predicate used to select windows.

The filterFn predicate accepts the following parameters:

Parameter Type Description
url Object The URL
title String The window title

The url object has the same structure as its Node.js counterpart. It can contain the following properties:

Property Description Example
protocol Protocol used 'https:'
host Hostname 'www.devexpress.com'
port Port number '80'
pathname Location relative to the host’s root folder '/products/testcafestudio/'
href The complete URL 'https://www.devexpress.com/products/testcafestudio/'

Example:

fixture `TestController.switchToWindow`
    .page('https://www.example.com/');

test('Switching between different windows', async t => {
    await t.openWindow('https://devexpress.github.io/testcafe')
        .openWindow('https://devexpress.com')
        .switchToWindow(w => w.url.host === 'testcafe.io')
        .switchToWindow(w => w.title === 'Example Domain' && w.url.host === 'www.example.com');
});