如何使用Cypress仅清除localStorage指定键的值而非删除整个键?
Cypress 保留键仅清空 localStorage 指定值的实现方法
Cypress 内置的 cy.clearLocalStorage() 本质是删除指定键,无法仅清空值。要实现保留键、仅清除对应存储值的需求,直接调用浏览器原生 localStorage API 即可,Cypress 支持直接访问页面的 window 对象操作存储。
代码实现方案
写法1:then 链式调用(可读性更高)
it('Confirm users are logged out after 8 hours (clear last login token value without removing the key)', () => { cy.wait(2000) // 仅清空lastLogin对应的值,保留键本身 cy.window().then(window => { // 第二个参数按需求设为空字符串即可,如需设置为其他空值可自行替换 window.localStorage.setItem('lastLogin', '') }) // 可选:校验赋值结果是否符合预期 cy.window().its('localStorage.lastLogin').should('eq', '') });
写法2:invoke 简写(代码更简洁)
it('Confirm users are logged out after 8 hours (clear last login token value without removing the key)', () => { cy.wait(2000) cy.window().its('localStorage').invoke('setItem', 'lastLogin', '') });
注意事项
- localStorage 仅支持存储字符串类型,如果你设置值为
null/undefined,最终会被自动转为字符串"null"/"undefined",要实现完全的空值,直接传入空字符串''即可。 - 如果要清除的是 sessionStorage 的值,把上述代码里的
localStorage替换为sessionStorage即可生效。
内容的提问来源于stack exchange,提问作者LXLabs_Liam
相关产品推荐
相关产品推荐

