You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cypress UI登录后修改邮箱报401未授权如何保存会话数据解决

问题

在执行需要授权的登录测试及邮箱修改功能测试时,修改邮箱需要用到登录流程产生的鉴权数据。先通过UI操作完成登录(输入账号信息后点击登录按钮),之后进入邮箱修改页输入新邮箱,点击确认按钮时触发401 Unauthorized错误,是否可以保存之前登录产生的会话数据来避免该401错误?

解决方案
  • 要在Cypress会话之间保存数据,可以在beforeEach钩子中调用cy.preserveAllCookiesOnce()方法。
  • 若需要在beforeEach钩子中传递API_KEY,可通过cy.intercept实现,相关示例如下:

示例1:拦截匹配指定正则的请求添加请求头

cy.intercept(/e.g: regex to match url /, req => {
  req.headers['your header'] = true;
});
// 拦截所有请求的写法:
cy.intercept(/**, req => {
  req.headers['your header'] = true;
});

示例2:携带鉴权头发起cy.request

cy.request({
  method: 'GET',
  url: '',
  headers: { Authorization: `apikey-v1 ${apiKey}` }
}).then(async response => {
  cy.task('your task').then(task => {
    cy.get('input[placeholder="Enter code..."]').type(task);
  });
});

示例3:修改按钮点击触发的请求

cy.contains('Confirm')
  .click()
  .then(() => {
    cy.url().then(urlValue =>
      cy.visit({ url: urlValue, qs: { add params to match condition for regex } })
    );
  })

内容的提问来源于stack exchange,提问作者Adrian Góra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 00:54:01