我是 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)
我必须使用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()
中找到。