作用

获取指定名称的 Cookie

语法格式

  1. cy.getCookie(name)
  2. cy.getCookie(name, options)

name 必传

options 参数

  • log:是否将命令显示到命令日志中,默认 true
  • timeout:命令超时时间

正确用法

  1. // 获取 token 这个 Cookie
  2. cy.getCookie('token')

命令返回结果

返回一个 Cookie 对象,并且包含以下属性

  • domain
  • expiry (如果有)
  • httpOnly
  • name
  • path
  • sameSite (如果有)
  • secure
  • value


    注意:当找不到指定 Cookie 时,该命令会返回 null

    实际栗子

    栗子一:直接访问网站

    代码

    Cypress系列(78)- getCookie() 命令详解 - 图1

  • 可以用 .should(exist) 判断 cookie 对象是否存在

  • 也可以用 .should(‘have.property’) 判断这个 cookie 对象的某个属性是否包含指定的值
  • 最后用 .then() 暂存 cookie 对象,以便后续扩展使用

运行结果

Cypress系列(78)- getCookie() 命令详解 - 图2

getCookie 返回结果

Cypress系列(78)- getCookie() 命令详解 - 图3
一个 cookie 对象一定会包含上面的六个属性

栗子二:简单登录页面

代码

  1. //<reference types="cypress" /R>
  2. describe('getCookie 登录页面', function () {
  3. const username = 'jane.lane'
  4. const password = 'password123'
  5. before(function () {
  6. // 登录操作
  7. cy.visit("http://localhost:7079/login")
  8. cy.get("input[name=username]").type(username)
  9. cy.get("input[name=password]").type(password)
  10. cy.get("form").submit()
  11. })
  12. it('获取登录后的 cookie', function () {
  13. cy.getCookie("cypress-session-cookie")
  14. .should('exist')
  15. .should('have.property', 'domain', "localhost")
  16. .then((cookies) => {
  17. cy.log(cookies)
  18. })
  19. })
  20. })

运行结果

Cypress系列(78)- getCookie() 命令详解 - 图4

https://www.cnblogs.com/poloyy/p/14015090.html