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

Cypress 13点击同超域链接不携带Cookie,原Cypress11方案失效原因咨询

Cypress 11到13的Cookie携带问题

测试场景

点击指向同一超域的页面链接,该URL请求会重定向至其他域名。但当前问题是:源页面的Cookie未随请求携带,导致请求失败、重定向无法完成。

Cypress 11 可行方案

在Cypress 11中,以下代码可正常运行:

cy.contains('ACTIVATE ACCOUNT').invoke('removeAttr', 'target').click();  

Cypress 13 临时解决办法

在Cypress 13中,必须显式将源页面的Cookie添加至visit请求才能正常执行:

cy.contains('ACTIVATE ACCOUNT').invoke('attr', 'href')
  .then(initialHref => {
    cy.getCookies().then(cookies => {
      const cookieString = cookies.map(cookie => `${cookie.name}=${cookie.value}`).join('; ');
      cy.visit(initialHref, {
         headers: {
           'Cookie': cookieString,
        } 
      })
  });
});

疑问

为何原Cypress 11的方案在Cypress 13中失效?我在更新日志中未找到相关说明。

最初我以为这与cy.origin有关,但链接属于同一超域;也考虑过cy.session,但它用于测试间共享会话状态。另外,Cypress现在将Cookie域设置为主机域而非超域,但这也不是问题所在——关键是click触发的visit请求不再携带Cookie。

补充说明

我希望继续使用click方法,因为想要在端到端测试中模拟真实用户操作。

内容的提问来源于stack exchange,提问作者Ben_R

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 00:22:12