微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如果想从头学起Cypress,可以看下面的系列文章@H_404_5@

https://www.cnblogs.com/poloyy/category/1768839.html@H_404_5@

 @H_404_5@

作用

获取指定名称的 Cookie@H_404_5@

 @H_404_5@

语法格式

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

name 必传 @H_404_5@

 @H_404_5@

options 参数

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

 @H_404_5@

正确用法

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

 @H_404_5@

命令返回结果

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

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

 @H_404_5@

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

 @H_404_5@

实际栗子

栗子一:直接访问网站

代码

@H_404_5@@H_404_5@

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

 @H_404_5@

运行结果

@H_404_5@@H_404_5@

 @H_404_5@

getCookie 返回结果

@H_404_5@@H_404_5@

一个 cookie 对象一定会包含上面的六个属性@H_404_5@

 @H_404_5@

栗子二:简单登录页面

代码

<reference types="cypress" /R>

describe('getCookie 登录页面',function () {

    const username = 'jane.lane'
    const password = 'password123'

    before( () {
         登录操作
        cy.visit("http://localhost:7079/login")
        cy.get("input[name=username]").type(username)
        cy.get("input[name=password]").type(password)
        cy.get("form").submit()
    })

    it('获取登录后的 cookie',1)"> () {
        cy.getCookie("cypress-session-cookie")
            .should('exist')
            .should('have.property','domain',"localhost")
            .then((cookies) => {
                cy.log(cookies)
            })
    })
})

 @H_404_5@

运行结果

@H_404_5@@H_404_5@

 @H_404_5@

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐