You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Playwright中验证两个操作按任意顺序完成?

在Playwright中验证两个操作按任意顺序完成的方案

直接用JavaScript的Promise.all()就能实现你要的逻辑——它会并行等待所有传入的Promise完成,完全不关心它们的执行顺序,只要所有操作都成功通过断言,测试就会通过。

具体代码示例:

// 假设你已经定义了这两个断言函数
async function expectDrawerToClose() {
  await expect(page.locator('.drawer')).toBeHidden({ timeout: 10000 });
}

async function expectNotification() {
  await expect(page.locator('.notification')).toBeVisible({ timeout: 10000 });
}

// 并行等待两个操作完成,顺序无关
await Promise.all([
  expectDrawerToClose(),
  expectNotification()
]);

为什么这个方案可行?

  • Promise.all()会同时启动两个断言的等待逻辑,各自独立判断目标状态是否满足,不会因为其中一个操作先发生就阻塞另一个的判断。
  • 只要两个断言都在设置的超时时间内成功触发,不管哪个先完成,测试都会通过,完美解决你遇到的顺序随机性问题。
  • 不同于or定位器只要求满足其中一个条件,Promise.all()强制要求两个断言都必须通过,完全符合你的需求。

内容的提问来源于stack exchange,提问作者machineghost

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 16:08:14