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

Jax*_*x-p 4 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');
})
Run Code Online (Sandbox Code Playgroud)

小智 10

你也可以使用

cy.window()
  .its("sessionStorage")
  .invoke("getItem", "token")
  .should("exist");
Run Code Online (Sandbox Code Playgroud)


Jax*_*x-p 6

我必须使用cy.window()它可以获取当前活动页面的窗口对象。

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

更多信息可以在cypress.io 文档cy.window()中找到。