如何在赛普拉斯测试中设置cookie?

时间:2018-10-29 16:54:48

标签: cookies e2e-testing cypress

Cypress Cookie Setting

从赛普拉斯文档中提取的此示例无法正常工作:

cy.getCookies().should('be.empty');
cy.setCookie('session_id', '189jd09sufh33aaiidhf99d09');
cy.getCookie('session_id').should('have.property', 'value', '189jd09sufh33aaiidhf99d09');

每次尝试设置setCookie()时,它似乎都没有问题,但是在我调用getCookies()时总是返回此值:

$Chainer {chainerId: "chainer18", firstCall: false}
chainerId: "chainer18"
firstCall: false
__proto__: Object

我这里缺少什么吗?

2 个答案:

答案 0 :(得分:1)

您应使用cy.getCookies(),不要带参数。该函数返回您拥有的Cookie数组。比您可以做的:

cy.getCookies().should('have.length', 1).then((cookies) => {
  expect(cookies[0]).to.have.property('session_id', '189jd09sufh33aaiidhf99d09')
})

答案 1 :(得分:0)

看起来与https://github.com/cypress-io/cypress/issues/1321有关,并且已在赛普拉斯的3.1.2版中进行了修补。一切都再次与世界同在。