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:
Property | Type | Description |
---|---|---|
name | string | Machine-friendly name, like chrome , electron , or firefox . |
family | string | Rendering engine being used. chromium or firefox . |
channel | string | Release channel of the browser, such as stable , dev , or canary . |
displayName | string | Human-readable display name for the browser. |
version | string | Full version. |
path | string | Path to the browser on disk. Blank for Electron. |
majorVersion | number | The major version number of the browser. |
isHeadless | boolean | Whether the browser is running headlessly. |
isHeaded | boolean | Whether 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​
Version | Changes |
---|---|
4.8.0 | Expanded matcher and matchers arguments to assist in filtering browsers. |
4.0.0 | Added isBrowser command. |