如何在对不同域的 Cypress 请求中访问 c​​ookie?

问题描述

作为赛普拉斯测试的一部分,我正在尝试使用 cy.request 在不同的域进行身份验证。身份验证请求需要包含 XSRF-TOKEN cookie 的值作为标头。当在与身份验证域相同的 baseURL 上时,这很容易解决:访问域,通过 cy.getCookie 读取 cookie,然后发出请求。由于 cypress 不允许在单个测试中访问多个域,因此需要不同的工作流程。

我现在的解决方案是用 cy.visit 替换初始的 cy.reqeuest(通过查看第二个请求的请求标头将 cookie 设置为已验证)。但是,在发出第二个身份验证请求之前,我无法弄清楚如何读取此 cookie。 cy.getCookies() 为空,document.cookie 为空。 cy.request 的响应第一次只包含一个“set-cookie”标头,我不知道如何读取 cy.request 的默认标头,因为 cy.intercept 没有与 cy.request 合作。

我尝试的草图(其中 c.valuenull):

cy.request({url: "https://notbaseurl/login"}).then(res => {
  cy.getCookie("XSRF-TOKEN").then(c => {
    cy.request({url: "https://notbaseurl/auth",method: "POST",headers: {"X-XSRF-TOKEN": c.value}})
  })
})

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...