1. 程式人生 > 實用技巧 >Cypress系列(78)- getCookie() 命令詳解

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

如果想從頭學起Cypress,可以看下面的系列文章哦

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

作用

獲取指定名稱的 Cookie

語法格式

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

name 必傳

options 引數

  • log:是否將命令顯示到命令日誌中,預設 true
  • timeout:命令超時時間

正確用法

// 獲取 token 這個 Cookie
cy.getCookie('token')

命令返回結果

返回一個 Cookie 物件,並且包含以下屬性

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

注意:當找不到指定 Cookie 時,該命令會返回 null

實際栗子

栗子一:直接訪問網站

程式碼

  • 可以用.should(exist)判斷 cookie 物件是否存在
  • 也可以用.should('have.property')判斷這個 cookie 物件的某個屬性是否包含指定的值
  • 最後用.then()暫存 cookie 物件,以便後續擴充套件使用

執行結果

getCookie 返回結果

一個 cookie 物件一定會包含上面的六個屬性

栗子二:簡單登入頁面

程式碼

//<reference types="cypress" /R>

describe('登入', function () {

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

    before(function () {
        // 登入操作
        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('登入成功,跳轉到dashboard', function () { cy.getCookie("cypress-session-cookie") .should('exist') .should('have.property', 'domain', "localhost") .then((cookies) => { cy.log(cookies) }) }) })

執行結果