
- Cypress 教程
- Cypress - 首頁
- Cypress - 簡介
- Cypress - 架構和環境設定
- Cypress - 測試執行器
- Cypress - 構建第一個測試
- Cypress - 支援的瀏覽器
- Cypress - 基本命令
- Cypress - 變數
- Cypress - 別名
- Cypress - 定位器
- Cypress - 斷言
- Cypress - 文字驗證
- Cypress - 非同步行為
- Cypress - 處理XHR
- Cypress - jQuery
- Cypress - 複選框
- Cypress - 標籤頁
- Cypress - 下拉列表
- Cypress - 警報
- Cypress - 子視窗
- Cypress - 隱藏元素
- Cypress - 框架
- Cypress - 網頁表格
- Cypress - 滑鼠操作
- Cypress - Cookie
- Cypress - GET 和 POST
- Cypress - 檔案上傳
- Cypress - 資料驅動測試
- Cypress - 提示彈出視窗
- Cypress - 儀表板
- Cypress - 截圖和影片
- Cypress - 除錯
- Cypress - 自定義命令
- Cypress - Fixture
- Cypress - 環境變數
- Cypress - Hook
- Cypress - JSON 檔案配置
- Cypress - 報告
- Cypress - 外掛
- Cypress - GitHub
- Cypress 有用資源
- Cypress - 快速指南
- Cypress - 有用資源
- Cypress - 討論
Cypress - Cookie
Cypress 使用Cookies.preserveOnce() 和 Cookies.defaults() 方法處理 Cookie。如果 Cookie 發生任何更改,Cookies.debug() 方法會將日誌輸出到控制檯。
預設情況下,Cypress 會在每次測試執行之前刪除所有 Cookie。我們可以利用Cypress.Cookies.preserveOnce()來保留指定名稱的 Cookie,以便在其他測試中使用。
語法
Cypress 中與 Cookie 相關的命令語法如下:
這將在配置或清除 Cookie 值時生成控制檯日誌。
Cypress.Cookies.debug(enable, option)
這裡:
enable – 是否啟用 Cookie 的除錯。
option – 配置 Cookie 的預設值,例如保留 Cookie。
Cypress.Cookies.debug(true) // logs will generate if cookies are modified cy.clearCookie('cookie1') cy.setCookie('cookie2', 'val')
降低日誌級別。
Cypress.Cookies.debug(true, { verbose: false }) Cypress.Cookies.debug(false) // logs will not generate if cookies are modified
以下語法將保留 Cookie,並且在執行另一個測試之前不會清除它們。
Cypress.Cookies.preserveOnce(cookie names...)
此語法用於修改全域性配置並維護一組在測試中保留的 Cookie。任何修改都將適用於該特定測試。(儲存在 cypress/support/index.js 檔案中,並在測試執行之前載入)。
Cypress.Cookies.defaults(option) Cypress.Cookies.defaults({ preserve: 'cookie1' })
這裡,名為 cookie1 的 Cookie 在執行測試之前不會被清除。
Cookie 方法
Cypress 中的一些 Cookie 方法如下:
cy.clearCookies() - 它刪除當前域名和子域名下的所有 Cookie。
cy.clearCookie(name) - 它根據名稱從瀏覽器中刪除 Cookie。
cy.getCookie(name) - 用於根據名稱從瀏覽器中獲取 Cookie。
cy.getCookies() - 用於獲取所有 Cookie。
cy.setCookie(name) - 可以配置 Cookie。
實現
以下是 Cypress 中 Cookie 方法的實現:
describe('Tutorialspoint Test', function () { // test case it('Scenario 1', function (){ // launch the application cy.visit("https://#"); // enable cookie logging Cypress.Cookies.debug(true) //set cookie cy.setCookie('cookie1', 'value1') //get cookie by name and verify value cy.getCookie('cookie1').should('have.property', 'value', 'value1') //clear cookie by name cy.clearCookie('cookie') //get all cookies cy.getCookies() //clear all cookies cy.clearCookies() //verify no cookies cy.getCookies().should('be.empty') }); });
執行結果
輸出如下:
