Skip to main content
Cypress应用

getAllCookies

获取所有浏览器cookie。

语法

cy.getAllCookies()
cy.getAllCookies(options)

用法

正确用法

cy.getAllCookies() // 获取所有cookie

参数

options (Object)

传入一个选项对象来改变cy.getAllCookies()的默认行为。

选项默认值描述
logtrue命令日志中显示该命令
timeoutresponseTimeout等待cy.getAllCookies()解析的超时时间,超过则超时

生成结果 了解主题管理

cy.getAllCookies()返回一个cookie对象数组。每个cookie对象具有以下属性:

  • domain: (String)
  • expiry: (Number) (如果指定)
  • hostOnly: (Boolean) (如果指定)
  • httpOnly: (Boolean)
  • name: (String)
  • path: (String)
  • sameSite: (String) (如果指定)
  • secure: (Boolean)
  • value: (String)

cy.getAllCookies()不是查询命令。如果在初始执行后添加了更多cookie,它不会更新返回的列表。

示例

获取Cookie

登录后获取cookie

在此示例中,我们通过身份提供程序登录,该程序设置一个cookie并重定向回我们的站点,站点再设置一个会话cookie。

cy.contains('Log in').click()
cy.origin('https://example.cypress.io', () => {
cy.get('[type=password]').type('*****')
cy.contains('Log in').click()
})
cy.url().should('include', 'profile')
cy.getAllCookies()
.should('have.length', 2)
.then((cookies) => {
expect(cookies[0]).to.have.property('name', 'identity_session_id')
expect(cookies[1]).to.have.property('name', 'session_id')
})

规则

要求 了解命令链

  • cy.getAllCookies()需要链式调用cy

断言 了解断言

  • cy.getAllCookies()只会运行一次链式断言,不会重试

超时设置 了解超时机制

  • cy.getAllCookies()不应该超时。
caution

由于cy.getAllCookies()是异步的,理论上在与Cypress内部自动化API通信时可能会超时。但实际上这种情况几乎不会发生。

另请参阅