Cypress 柏树是';t在一次测试中多次使用visit()时保留身份验证cookie

Cypress 柏树是';t在一次测试中多次使用visit()时保留身份验证cookie,cypress,Cypress,我的Cypress E2E测试的一部分是验证某些URL是否受到完全限制,以便没有正确角色的用户无法访问它们。为此,我编写了一个包含多个访问语句的场景: beforeEach(() => { cy.visit(Cypress.env(HOST_URL)); }); it('cannot scan without scan role', () => { cy.login(standard.userName, password); cy.get('#sc

我的Cypress E2E测试的一部分是验证某些URL是否受到完全限制,以便没有正确角色的用户无法访问它们。为此,我编写了一个包含多个访问语句的场景:

beforeEach(() => {
    cy.visit(Cypress.env(HOST_URL));
   
});


it('cannot scan without scan role', () => {
    cy.login(standard.userName, password);
    cy.get('#scanDirectoryLink_text')
        .should('not.exist');
    cy.visit(`${Cypress.env(HOST_URL)}/scanning`);
    cy.url()
        .should('not.include', 'scanning')
        .should('not.include', 'login');
});
在这个场景中,我验证了指向页面的链接不可见,并且直接导航到URL不会成功。我的问题是,当我使用第二个cy.visit()命令时,它会将我带回登录页面。所以从技术上讲,它没有到达页面,但原因并不是我想要的


我不想在测试之间保留cookie,但我希望在多个cy.visit()调用之间保留cookie,这样我就不会丢失身份验证。或者,有没有更好的方法可以通过编程方式在我的站点中移动到新的URL?

尝试在support/index.js中添加此内容

Cypress.LocalStorage.clear = function (keys, ls, rs) {
  //keep localStorage
  return;
}

我的令牌没有存储在localStorage中,而是存储在cookie中。