赛普拉斯版本更新后标头授权不起作用

Posted

技术标签:

【中文标题】赛普拉斯版本更新后标头授权不起作用【英文标题】:Headers authorization not working after Cypress version update 【发布时间】:2021-11-06 19:48:06 【问题描述】:

我正在从事一个使用 cypress 的自动化项目。为了让测试用户登录,我正在使用:

Cypress.Commands.add("setAuth", () => 
    cy.intercept('https://url/privat', (req) => 
        req.headers['authorization'] = 'Bearer token'
    )
)

我使用的 Cypress 版本 6.9.1

我正在尝试将我的 Cypress 版本更新为 8.3.1(最新)

cypress更新后,用户无法登录。我不知道如何调试或解决这个问题。

【问题讨论】:

您是否收到任何错误消息? 没有这样的错误。我对后端(graphql)的所有请求都未经授权 - 401。因此,它无法登录。 【参考方案1】:

好的,我解决了。在旧版本中,cypress 能够拦截在 https://url/privat 上完成的所有调用,因此它也能够拦截对 graphql 的调用,例如:https://url/privat/graphql

但在新版本中,它不会拦截所有呼叫。现在它需要指定像https://url/privat/**

所以,现在应该是

Cypress.Commands.add("setAuth", () => 
    cy.intercept('https://url/privat/**', (req) => 
        req.headers['authorization'] = 'Bearer token'
    )
)

现在运行良好。

【讨论】:

以上是关于赛普拉斯版本更新后标头授权不起作用的主要内容,如果未能解决你的问题,请参考以下文章

赛普拉斯:组合键

赛普拉斯获取 href 属性

赛普拉斯与SystemJS

赛普拉斯:如何计算按钮数量

赛普拉斯:如何使用键盘事件

赛普拉斯:我们如何在赛普拉斯中使用不记名令牌编写 GET 请求?