我的情况是,我需要我的功能浏览器测试来检查所有页面响应的返回状态代码,如果我收到 503,请尝试在失败前重新加载页面 X 次。
我曾尝试使用 Playwright 网络事件,但似乎更改页面状态(即触发重新加载)会破坏任何未来的交互,并且最终会出现Execution context was destroyed, most likely because of a navigation.
错误。
例如:
page.on('response', async (response) => {
if (response.request().resourceType() !== 'document') return;
if (response.status() === 503) {
await page.reload();
}
}
(为了简单起见,我省略了重试逻辑)
执行此代码后,任何与页面交互的尝试都将导致Execution context was destroyed
错误。
我不是 100% 确定这是解决这个问题的正确方法。有任何想法吗?