Playwright的wait funtion测试

Playwright的wait funtion测试

强制等待

javascript 复制代码
/**
 * Selects an option from a PrimeFaces/JSF dropdown menu.
 * @param {*} page 
 * @param {*} locator 
 * @param {*} option 
 * @param {*} timeout 
 */
const selectDropDown = async (page, locator, option, timeout = 500) => {
  await page.locator(locator).click();
  await page.waitForTimeout(timeout);
  await page.getByRole('option', { name: option }).click();
  await page.waitForTimeout(timeout);
}

等待元素加载

javascript 复制代码
/**
 * Selects an option from a PrimeFaces/JSF dropdown menu.
 * @param {*} page 
 * @param {*} locator 
 * @param {*} option 
 * @param {*} timeout 
 */
const selectDropDown = async (page, locator, option, timeout = 500) => {
  // 1. Click the dropdown trigger
  await page.locator(locator).click();

  // 2. Wait for the option text to be visible anywhere on the page
  // This is robust for PrimeFaces where options are often divs/li with text content
  const optionLocator = page.getByText(option, { exact: true }).first();
  
  // Wait up to 5 seconds for the option to appear
  await expect(optionLocator).toBeVisible({ timeout: 5000 });

  // 3. Click the option
  await optionLocator.click();
}
相关推荐
SL_staff1 天前
风控规则不该写代码:一个开发者视角的规则引擎实践拆解
java·架构·全栈
Darling噜啦啦2 天前
前端到上线全流程:从买服务器到 Nginx 反向代理,搞懂全栈部署
nginx·全栈
烬羽2 天前
我把"时间胶囊"部署上腾讯云宝塔,跨域从根源消失了
nginx·node.js·全栈
wangfpp5 天前
生产级 RAG 知识库全流程实践
人工智能·agent·全栈
GitLqr6 天前
从代码复用走向生态:Flutter Dart Package 实战全指南
flutter·全栈·dart
YIAN7 天前
Next.js App Router 全栈实战:从 0 到 1 写一个 Todo 应用,前端后端一个项目搞定
前端·全栈·next.js
浮生望7 天前
Next.js 全栈笔记系统实战:RSC 组件架构、Redis 数据层与规范驱动开发
全栈
GitLqr8 天前
Flutter 实战:如何轻松实现图片与视频保存到手机相册
flutter·全栈·dart
HjhIron8 天前
全栈项目容器化实战:从 React + NestJS 到 Docker 部署与跨域处理
全栈
万敏8 天前
Vue3 全栈实战第七周:错误处理与请求层封装实战记录
vue.js·node.js·全栈