作为赛普拉斯测试的一部分,我正在尝试使用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.request
since的默认标头cy.intercept
不适用于cy.request
.
我的尝试草图(在哪里c.value
)null
:
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}})
})
})