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

Playwright执行操作前添加超时:selector隐藏判断while循环内加延迟方法

实现方案

你可以通过封装异步延迟函数的方式添加等待逻辑,具体实现如下:

方法1:添加固定时长延迟

先封装通用的sleep异步函数,在执行逻辑前调用即可:

// 封装延迟方法,入参为等待的毫秒数
function sleep(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

// 改造后的循环逻辑
while(await page.locator('.list-empty').isHidden()) {
  // 等待指定时长,示例为1秒,可根据实际情况调整
  await sleep(1000);
  // do something
}

方法2:更稳定的元素等待方案(推荐)

固定延迟的时长不好把控,建议搭配Playwright自带的元素等待API,在执行逻辑前先确认你要操作的元素处于可用状态,完全避免找不到selector的问题:

while(await page.locator('.list-empty').isHidden()) {
  // 等待你需要操作的目标元素可见,默认超时时间为30秒,可通过timeout参数自定义
  await page.locator('你要操作的元素selector').waitFor({ state: 'visible' });
  // do something
}

如果有需要你也可以同时使用两种方案,先加固定延迟再等待元素就绪。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 11:54:00