0

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

我现在的解决方案是cy.visit用 a替换初始值cy.reqeuest(这会将 cookie 设置为通过查看第二个请求的请求标头来验证)。但是,在发出第二次身份验证请求之前,我无法弄清楚如何读取此 cookie。cy.getCookies()是空的,document.cookie是空的。only的响应第cy.request一次包含“set-cookie”标头,我无法弄清楚如何读取cy.requestsince的默认标头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}})
  })
})
4

1 回答 1

0

目前这是不可能的。见https://github.com/cypress-io/cypress/issues/8956

于 2022-01-01T21:34:08.090 回答