【问题标题】:How to clear local storage in Cypress test?如何在 Cypress 测试中清除本地存储?
【发布时间】:2022-01-20 05:39:38
【问题描述】:

在我的赛普拉斯测试场景开始时,我需要点击以下 IFrame 上的同意并继续按钮:

问题是,在我第一次测试运行期间单击此按钮后,用户的同意存储在本地存储中,如您在此处看到的:

如果我再次重新运行测试,它会失败,因为本地存储正在存储用户的同意,因此不会出现请求同意的 IFrame。

如果我从本地存储中手动清除 truste.consent.willistowerswatson.com 密钥并重新运行我的测试,它将通过。

我需要以某种方式自动清除此值。

我尝试使用以下代码指定 key 值,但它没有清除该值:

beforeEach(() => {
    cy.clearLocalStorage('truste.consent.willistowerswatson.com')
})

it('First test', () => {
    cy.visit('http://www.willistowerswatson.com/ICT');
    cy.iframe('[id^=pop-frame]').find('.call').should('have.text', 'Agree and Proceed').click()
})

谁能解释我如何从本地存储中清除此值,以便我的测试可以重新运行而不会出现任何问题?

【问题讨论】:

    标签: javascript automated-tests local-storage cypress


    【解决方案1】:

    您可以通过运行删除此特定密钥:

    localStorage.removeItem(‘truste.consent.willistowerswatson.com‘);
    

    或者,如果需要,您可以删除整个 localStorage,如下所示:

    localStorage.clear();
    

    您还可以在此处的 MDN 网络文档中找到更多信息:https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 2021-06-28
      • 1970-01-01
      • 2020-11-19
      • 2012-04-12
      • 2022-08-09
      • 2019-10-19
      相关资源
      最近更新 更多