Playwright测试脚本如何暂停3秒后再继续执行?
create admin测试用例异步等待问题解决方案
你遇到的问题核心原因是:管理员表格刷新属于页面导航完成后的异步数据渲染行为,不属于页面跳转范畴,因此waitForNavigation()方法无法监听到该动作。硬编码3秒等待的方案兼容性差,不同环境下的加载速度波动很容易导致用例执行失败,推荐使用以下更稳定的处理方案:
- 等待目标用户元素渲染完成
直接使用测试框架自带的元素等待能力,指定等待你新创建的管理员账号对应的表格行出现,只要元素加载完成就会立即执行后续校验逻辑,无需固定等待3秒。参考代码示例:
如果你使用的是Playwright:await page.getByRole('row', { name: '新创建的管理员用户名' }).waitFor()
如果你使用的是Puppeteer:await page.waitForSelector('tr:has-text("新创建的管理员用户名")') - 监听用户列表接口响应
如果表格数据是通过调用后端接口拉取的,可以提前监听用户列表接口的响应,等接口返回数据后再执行校验,示例代码(Playwright环境):// 提前注册用户列表接口监听 const waitUserListRes = page.waitForResponse('**/api/admin/user/list') // 填写表单后点击提交按钮 await page.getByRole('button', { name: '保存' }).click() // 等待页面导航完成 await page.waitForNavigation() // 等待用户列表接口返回数据,表格此时会完成渲染 await waitUserListRes - 临时固定等待方案(不推荐)
如果临时调试需要用固定时长等待,可以使用框架自带的延迟方法,比如Playwright/Puppeteer都支持await page.waitForTimeout(3000),该写法不推荐用于正式测试用例集。
参考截图
- 点击「保存」按钮后的导航效果

- 表格3秒刷新完成后的效果

- create函数的代码实现

内容的提问来源于stack exchange,提问作者jialeee17
相关产品推荐
相关产品推荐

