我使用的是 Cypress 7.5.0,我在基于 cypress/browsers:node12.16.1-chrome80-ff73 的 Docker 容器中运行我的 E2E 测试。
测试已经在 Chrome 上运行了一段时间。 尝试在 Firefox 上执行它们时,出现以下错误:
CypressError: `cy.setCookie()` had an unexpected error setting the requested cookie in Firefox.
当我在本地(在 Docker 容器之外)运行测试并使用我的计算机上安装的 Firefox 版本(Ubuntu 18.04)时,相同的代码可以正常工作。
为了在我的应用程序中进行身份验证,我检索了以下 cookie:
[
{
name: 'XSRF-TOKEN',value: '7a8b8c79-796a-401a-a45e-1dec4b8bc3c3',domain: 'frontend',path: '/',expires: -1,size: 46,httpOnly: false,secure: false,session: true
},{
name: 'JSESSIONID',value: 'B99C6DD2D423680393046B5775A60B1C',expires: 1627566358.621716,size: 42,httpOnly: true,session: false
}
]
然后我使用:
cy.setCookie(cookie.name);
我尝试使用不同的组合来覆盖 cookie 详细信息,例如:
cy.setCookie(cookie.name,cookie.value,{
domain: cookie.domain,expiry: cookie.expires,httpOnly: cookie.httpOnly,path: cookie.path,secure: true,sameSite: 'Lax',});
但没有任何效果。
我不明白为什么它在本地运行时有效而在 Docker 容器中运行时失败。有什么想法吗?
谢谢。