根据Cypress文档,实验性会话和起始点允许在测试之间保持浏览器状态,包括Cookies。但是,如果启用了此功能,Cypress可能会跟踪和清除您不希望的Cookies。此外,由于脚本执行速度更快,可能会在某些情况下导致测试运行失败。
下面是关于如何避免Cypress跟踪和清除Cookies的一些示例代码。请注意,具体解决方案取决于您的需求和环境,这些代码仅供参考。
- 在整个测试期间保持Cookies不变:
Cypress.Cookies.defaults({
preserve: ['cookie-name']
})
- 避免Cypress清除Cookies:
cy.clearCookie('cookie-name', { domain: null })
- 禁用自动跟踪和清除Cookies并手动设置:
Cypress.Cookies.defaults({
preserve: () => true
})
cy.setCookie('cookie-name', 'value', {
domain: 'localhost',
path: '/',
expiry: Date.now() * 2,
httpOnly: false,
secure: false
})
请注意,这是一个实验性选项,可能会有一些不稳定性或不一致性,并且取决于环境。因此,建议在测试过程中小心谨慎地使用。