Playwright的wait funtion測(cè)試的實(shí)現(xiàn)
強(qiáng)制等待
/**
* 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);
}等待元素加載
/**
* 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();
}執(zhí)行結(jié)果

根本原因分析
role="option"不適用于 PrimeFaces/JSF 組件
你之前的代碼使用了 `page.getByRole('option', { name: option })。
標(biāo)準(zhǔn) HTML <select> :瀏覽器會(huì)自動(dòng)給 <option> 標(biāo)簽賦予 role="option"。
PrimeFaces/JSF 自定義下拉框: 這些框架通常使用 <div>, <li>, 或 <span> 來(lái)模擬下拉菜單,而不是原生的 <select>。
- 如果底層元素是 <li class="ui-selectitem">PWY</li>,它沒(méi)有 role="option" 屬性。
- 因此,getByRole('option') 永遠(yuǎn)返回空,導(dǎo)致 toBeVisible 超時(shí)失敗。
解決方案
我們需要放棄 getByRole('option'),改用更通用的文本匹配或 CSS 類匹配。
到此這篇關(guān)于Playwright的wait funtion測(cè)試的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Playwright wait funtion測(cè)試內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Playwright快速上手指南(入門教程)
- Python開(kāi)源自動(dòng)化工具Playwright安裝及介紹使用
- Python中Playwright的常用操作方法分享
- 新一代爬蟲(chóng)利器Python?Playwright詳解
- python playwright 自動(dòng)等待和斷言詳解
- Python playwright學(xué)習(xí)之自動(dòng)錄制生成腳本
- Python?Playwright的使用詳解
- Python自動(dòng)化神器Playwright的用法詳解
- python playwright之元素定位示例詳解
- Playwright中如何保持登錄狀態(tài)
- Python Playwright安裝和基本使用問(wèn)題記錄
相關(guān)文章
python 命名規(guī)范知識(shí)點(diǎn)匯總
這里給大家分享的是在python開(kāi)發(fā)過(guò)程中需要注意的命名的規(guī)范的知識(shí)匯總,有需要的小伙伴可以查看下2020-02-02
Python深度學(xué)習(xí)之實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)
今天帶大家學(xué)習(xí)如何使用Python實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò),這是個(gè)很難的知識(shí)點(diǎn),文中有非常詳細(xì)的介紹,對(duì)小伙伴們很有幫助,需要的朋友可以參考下2021-06-06
pycharm2020.1.2永久破解激活教程,實(shí)測(cè)有效
很多使用pycharm2020.1.2版本的朋友,不知道如何激活破解,這篇文章主要介紹了pycharm2020.1.2永久破解激活教程,經(jīng)小編實(shí)測(cè)有效,需要的朋友可以參考下2020-10-10
一文分享20個(gè)實(shí)用的Python自動(dòng)化腳本,提升10倍效率
Python憑借其簡(jiǎn)潔的語(yǔ)法和強(qiáng)大的庫(kù),堪稱創(chuàng)建自動(dòng)化腳本的最佳編程語(yǔ)言之一,本文將分享用于自動(dòng)化各類任務(wù)的20個(gè)Python腳本,這些腳本非常適合希望優(yōu)化工作流程、提升效率的實(shí)踐者2026-03-03
詳解Python使用OpenCV如何確定一個(gè)對(duì)象的方向
在本教程中,我們將構(gòu)建一個(gè)程序,該程序可以使用流行的計(jì)算機(jī)視覺(jué)庫(kù) OpenCV 確定對(duì)象的方向(即以度為單位的旋轉(zhuǎn)角度),感興趣的小伙伴可以了解一下2022-10-10

