Cypress.browser
Cypress.browser
返回浏览器的属性。
语法
Cypress.browser // 返回浏览器对象
该对象包含以下属性:
属性 | 类型 | 描述 |
---|---|---|
channel | string | 浏 览器的发布渠道,如 stable 、dev 或 canary 。 |
displayName | string | 浏览器的可读显示名称。 |
family | string | 使用的渲染引擎。chromium 或 firefox 。 |
isChosen | boolean | 浏览器是否在 Cypress 的浏览器选择器中被选中。 |
majorVersion | number | string | 浏览器的主版本号。 |
name | string | 机器友好的名称,如 chrome 、electron 或 firefox 。 |
path | string | 浏览器在磁盘上的路径。Electron 浏览器为空。 |
version | string | 完整版本号。 |
isHeadless | boolean | 浏览器是否以无头模式运行。 |
isHeaded | boolean | 浏览器是否以有界面模式显示。 |
示例
记录浏览器信息
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 功能。 |