Cypress系列(78)- getCookie() 命令詳解
阿新 • • 發佈:2020-11-22
如果想從頭學起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) }) }) })