运行Cypress代码时自动跳转首页并填充登录信息,该如何停止?
Cypress自动跳转首页并填充登录模块的解决方法
- 排查全局执行钩子
检查当前测试文件外层的before/beforeEach钩子,以及cypress/support/e2e.js(旧版本为cypress/support/index.js)全局配置文件,有没有预置自动登录、访问首页的逻辑,不需要的话直接删除对应代码,或给当前测试用例单独做逻辑隔离。 - 清理持久化登录缓存
页面自动填充登录信息大概率是存储在本地的缓存被读取导致,在测试用例执行前添加缓存清理逻辑即可:
beforeEach(() => { cy.clearLocalStorage() cy.clearSessionStorage() cy.clearCookies() })
- 补全目标页面主动访问逻辑
你当前的测试用例没有显式访问目标页面的代码,默认会复用之前测试的页面状态,很容易出现跳转异常,在it块开头主动访问目标页面:
it('SubInterfaces',function(){ // 主动跳转目标页,覆盖之前的页面状态 cy.visit('/spoke/create') cy.url().should('include','/spoke/create') cy.get('input').eq(15).type('cypress') cy.get('input').eq(16).type('34.43.45.56') cy.get('input').eq(17).type('22') cy.get('input').eq(18).type('345') })
- 拦截应用侧自动跳转逻辑
如果是前端应用本身的逻辑:检测到登录状态异常就自动跳转到登录页、读取本地缓存填充登录信息,可以mock应用的登录状态校验接口,让应用判定当前登录状态合法,不会触发跳转。
内容的提问来源于stack exchange,提问作者user2345
相关产品推荐
相关产品推荐

