如何使用赛普拉斯检查sessionStorage值

时间:2019-12-05 10:53:17

标签: cypress

我是cypress.io的新手,正在尝试检查sessionStorage中的项目是否已设置。

如何检查sessionStorage中的项目是否存在?


我通过调用cy.wrap(sessionStorage.getItem('someItem')).should('exist');进行了尝试,但是看起来好像是在初始化时设置了该值,因为在第一次测试中它说是expected null,而在另一个测试中它期望使用旧的sessionStorage值(来自先前的测试)。

it('can set sessionItem', function() {
   cy.visit('/handlerUrl')
   // ... some code
   cy.get('[type=submit]').click()
   cy.url().should('include', '/anotherUrl')
   cy.wrap(sessionStorage.getItem('someItem')).should('exist');
})

2 个答案:

答案 0 :(得分:6)

您也可以使用

cy.window()
  .its("sessionStorage")
  .invoke("getItem", "token")
  .should("exist");

答案 1 :(得分:0)

我不得不使用cy.window()来获取当前活动页面的窗口对象。

cy.window().then(win=> {
  const someItem = win.sessionStorage.getItem('someItem')
  cy.wrap(someItem).should('exist') // or 'not.empty'
}); 

有关cy.window()的更多信息可以在cypress.io documentation中找到。