问题描述
作为赛普拉斯测试的一部分,我正在尝试使用 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.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}})
})
})
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)