如果想從頭學起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('getCookie 登入頁面', 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('擷取登入後的 cookie', function () {
cy.getCookie("cypress-session-cookie")
.should('exist')
.should('have.property', 'domain', "localhost")
.then((cookies) => {
cy.log(cookies)
})
})
})