t.browser Property

Returns information about the current user agent: the operating system, platform type, browser, engine, etc.

t.browser
import { Selector } from 'testcafe';

fixture `My fixture`
    .page `https://example.com`;

test('My test', async t => {
    if (t.browser.name !== 'Chrome')
        await t.expect(Selector('div').withText('Browser not supported').visible).ok();
});

t.browser exposes the following properties:

Property Type Description Example
alias String The browser alias string specified when tests are launched. firefox:headless
name String The browser name. Chrome
version String The browser version. 77.0.3865.120
platform String The platform type. desktop
headless Boolean true if the browser runs in headless mode. false
os Object The name and version of the operating system. { name: 'macOS', version: '10.15.1' }
engine Object The name and version of the browser engine. { name: 'Gecko', version: '20100101' }
userAgent String The user agent string. Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/77.0.3865.120 Safari/537.36
prettyUserAgent String Formatted string with the browser and operating system's name and version. Chrome 77.0.3865.75 / macOS 10.14.0

Properties

alias

The browser alias string specified when tests were launched.

For locally installed browsers, this property contains the short browser name:

{
    alias: 'chrome'
}

For portable browsers, alias returns the path: prefix followed by the path to the browser executable:

{
    alias: 'path:C:\Program Files (x86)\Firefox Portable\firefox.exe'
}

Browser alias flags (:headless, :emulation, etc.) and command line parameters are included in the alias string:

{
    alias: 'chrome:headless --no-sandbox'
}
{
    alias: 'firefox:headless:disableMultiprocessing=true'
}

For cloud testing services and browsers acessed through browser providers, the alias property value is a string with all the specified browser parameters, and operating system and device parameters:

{
    alias: 'saucelabs:Samsung Galaxy S9 Plus WQHD GoogleAPI Emulator@8.1'
}

name

The short browser name.

{
    name: 'Safari'
}
{
    name: 'Internet Explorer'
}

If the browser cannot be detected automatically, the name property is set to 'Other'.

version

The browser version.

{
    name: 'Chrome',
    version: '77.0.3865.120'
}
{
    name: 'Firefox',
    version: '69.0'
}

The version property is set to '0.0' if the browser version cannot be determined.

platform

Identifies the platform type. This property can have the following values:

  • desktop
  • mobile
  • tablet
  • other (identifies other platforms, or indicates that the platform cannot be detected)
{
    name: 'Firefox',
    platform: 'mobile'
}

headless

Specifies if the browser is in headless mode.

{
    alias: 'chrome:headless',
    name: 'Chrome',
    headless: true
}

os

Provides the operating system's name and version.

{
    os: {
        name: 'Windows',
        version: '10'
    }
}

If the operating system cannot be detected, the os.name property is set to 'Other'. The os.version property defaults to '0.0' if TestCafe is unable to determine the OS version.

engine

Provides the browser engine's name and version.

{
    engine: {
        name: 'WebKit',
        version: '605.1.15'
    }
}

If the browser engine cannot be detected, the engine.name property is set to 'Other'. The engine.version property defaults to '0.0' if TestCafe is unable to determine the engine version.

userAgent

The user agent string.

{
    userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/77.0.3865.120 Safari/537.36'
}

prettyUserAgent

The formatted name and version of the browser and operating system. This string is displayed on the TestCafe loading screen and in the status bar.

{
    prettyUserAgent: 'Firefox 69.0 / Windows 10'
}
{
    prettyUserAgent: 'Chrome 77.0.3865.120 / macOS 10.15.1'
}

The prettyUserAgent property is set to an empty string if TestCafe cannot parse the user agent.