我有一个赛普拉斯测试,它创建一个客户并获取保险报价。我已用几个 API 请求替换了此过程的 UI 步骤。第一个注册客户,第二个获取报价并返回报价参考。然后,我使用 URL 中的报价参考直接导航至付款屏幕。
我现在正在将此测试转换为 Playwright,并遇到一个问题,即它不会像 Cypress 那样导航到支付屏幕。我认为这与由 API 请求之一设置的 cookie 有关,并且会话数据的保存方式可能与 Cypress 中的方式不同。有谁能够提供任何建议,使其与 Cypress 一样工作吗?
我设法弄清楚了。很抱歉原始问题中缺乏细节。我是一名测试人员,无法模拟 API 和测试站点以供其他人重现,因为我没有技能。
无论如何,问题是我发出的 API 请求如下:
const registerResponse = await request.post(*registerCustomerUrl*, {
data: {
*JsonBody*
}
});
当我打开浏览器并导航到付款页面时:
await page.goto(*paymentPageUrl*)
它对请求上下文一无所知。
要修复此问题,我必须更改向 page.request 发出 API 请求的方式:
const registerResponse = await page.request.post(*registerCustomerUrl*, {
data: {
*JsonBody*
}
});