Skip to main content

Cypress.isBrowser

Cypress.isBrowser checks if the current browser matches the given name or filter.

Syntax​

Cypress.isBrowser(matcher)
Cypress.isBrowser(matchers)
Cypress.isBrowser(filter)

Arguments​

matcher (String)

The name of the browser (case-insensitive) you want to check against. Name can be prepended with a ! character to inverse the check.

matchers (Array)

An array of the names of the browsers (case-insensitive) you want to check against. Name can be prepended with a ! character to inverse the check.

filter (Object or Array)

Filter one or multiple browsers by the browser properties. You can inspect the current browser's properties by using the Cypress.browser. Supported properties are:

PropertyTypeDescription
namestringMachine-friendly name, like chrome, electron, or firefox.
familystringRendering engine being used. chromium or firefox.
channelstringRelease channel of the browser, such as stable, dev, or canary.
displayNamestringHuman-readable display name for the browser.
versionstringFull version.
pathstringPath to the browser on disk. Blank for Electron.
majorVersionnumberThe major version number of the browser.
isHeadlessbooleanWhether the browser is running headlessly.
isHeadedbooleanWhether the browser displays headed.

Examples​

Matcher​

Only run command in Chrome​

it('download extension link', () => {
// true when running in Firefox
if (Cypress.isBrowser('firefox')) {
cy.get('#dl-extension').should('contain', 'Download Firefox Extension')
}

// true when running in Chrome
if (Cypress.isBrowser('chrome')) {
cy.get('#dl-extension').should('contain', 'Download Chrome Extension')
}
})

Run command in all browsers except Chrome​

it('warns to view page in Chrome browser', () => {
// true when running in Firefox, etc...
if (Cypress.isBrowser('!chrome')) {
cy.get('.browser-warning').should(
'contain',
'For optimal viewing, use Chrome browser'
)
}
})

Matchers​

Run commands in all specified browsers​

it('colors rainbow', () => {
// true when running in Electron or Chrome
if (Cypress.isBrowser(['electron', 'chrome'])) {
cy.get('.rainbox').should(
'have.css',
'conic-gradient(red, orange, yellow, green, blue)'
)
}
})

Run commands in all browsers except specified​

// true when running in browser other than chrome and electron
it('does not run in Firefox and Chrome', () => {
if (Cypress.isBrowser(['!electron', '!chrome'])) {
cy.get('#h4').should('have.css', 'font-size-adjust', '0.5')
}
})

Filter​

Only run commands in Chromium-based browser​

it('has CSS reflections', () => {
// if in Chromium-based browser (Chrome, Electron, etc...)
// check css property was properly applied
if (Cypress.isBrowser({ family: 'chromium' })) {
cy.get('.header').should('have.css', '-webkit-box-reflect', 'left')
}
})

Only run on stable release in Chromium-based browser​

it('test', () => {
// true when in any stable release of a Chromium-based browser
if (Cypress.isBrowser({ family: 'chromium', channel: 'stable' })) {
// test some (hypothetical) scenario in chrome stable
}
})

Only run on specific release channels of browsers​

it('test', () => {
// true when running in Chrome Canary
// and dev releases of Firefox browser
if (
Cypress.isBrowser([
{ family: 'chromium', channel: 'canary' },
{ family: 'firefox', channel: 'dev' },
])
) {
// test some (hypothetical) scenario
}
})

Notes​

Test configuration: browser​

If you want to target a test or suite to run or be excluded when run in a specific browser, we suggest passing the browser within the test configuration. The browser option accepts the same arguments as Cypress.isBrowser().

it('Download extension in Firefox', { browser: 'firefox' }, () => {
cy.get('#dl-extension').should('contain', 'Download Firefox Extension')
})
it('Show warning outside Chrome', { browser: '!chrome' }, () => {
cy.get('.browser-warning').should(
'contain',
'For optimal viewing, use Chrome browser'
)
})

History​

VersionChanges
4.8.0Expanded matcher and matchers arguments to assist in filtering browsers.
4.0.0Added isBrowser command.

See also​