Skip to main content
Cypress应用

Cypress.browser

Cypress.browser 返回浏览器的属性。

语法

Cypress.browser // 返回浏览器对象

该对象包含以下属性:

属性类型描述
channelstring浏览器的发布渠道,如 stabledevcanary
displayNamestring浏览器的可读显示名称。
familystring使用的渲染引擎。chromiumfirefox
isChosenboolean浏览器是否在 Cypress 的浏览器选择器中被选中。
majorVersionnumber | string浏览器的主版本号。
namestring机器友好的名称,如 chromeelectronfirefox
pathstring浏览器在磁盘上的路径。Electron 浏览器为空。
versionstring完整版本号。
isHeadlessboolean浏览器是否以无头模式运行。
isHeadedboolean浏览器是否以有界面模式显示。

示例

记录浏览器信息

Cypress.browser 返回浏览器对象

it('记录浏览器信息', () => {
console.log(Cypress.browser)
// {
// channel: 'stable',
// displayName: 'Chrome',
// family: 'chromium',
// isChosen: true,
// majorVersion: 80,
// name: 'chrome',
// path: '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
// version: '80.0.3987.87',
// isHeaded: true,
// isHeadless: false
// }
})

条件判断

检查 Chrome 特定样式是否应用

@media and (-webkit-min-device-pixel-ratio: 0) {
.header {
margin-right: 0;
}
}
it('检查 Chrome 特定 CSS 属性是否正确', () => {
// 如果在 Chrome 中,检查 CSS 属性是否正确应用
if (Cypress.browser.name === 'chrome') {
cy.get('.header').should('have.css', 'margin-right').and('eq', '0')
}
})

仅在无头浏览器中截图

Cypress.Commands.overwrite(
'screenshot',
(originalFn, subject, name, options) => {
// 仅在无头浏览器中截图
if (Cypress.browser.isHeadless) {
// 返回原始截图函数
return originalFn(subject, name, options)
}

return cy.log('有界面模式下不截图')
}
)

// 仅在无头浏览器中执行截图
cy.screenshot()

历史版本

版本变更
3.0.2引入 Cypress.browser 功能。

另请参阅