- Cypress教程
- Cypress - 主页
- Cypress - 简介
- Cypress - 架构和环境设置
- Cypress - 测试运行者
- Cypress - 构建第一个测试
- Cypress - 支持的浏览器
- Cypress - 基本命令
- Cypress - 变量
- Cypress - 别名
- Cypress - 定位器
- Cypress - 断言
- Cypress - 文本验证
- Cypress - 异步Behave
- Cypress - 使用 XHR
- Cypress - jQuery
- Cypress - 复选框
- Cypress - 标签
- Cypress - 下拉菜单
- Cypress - 警报
- Cypress - 子窗口
- Cypress - 隐藏元素
- Cypress - 框架
- Cypress - 网络表
- Cypress - 鼠标操作
- Cypress - cookie
- Cypress - 获取和发布
- Cypress - 文件上传
- Cypress - 数据驱动测试
- Cypress - 提示弹窗
- Cypress - 仪表板
- Cypress - 屏幕截图和视频
- Cypress - 调试
- Cypress - 自定义命令
- Cypress - 装置
- Cypress - 环境变量
- Cypress - 挂钩
- 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)
这里,
启用 – 是否应启用 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://accounts.google.com"); // 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') }); });
执行结果
输出如下 -