¿Cómo buscar un elemento que tiene una etiqueta vacía específica en el árbol de elementos en las pruebas de Playwright (usando su corredor de prueba)?
He probado un filtro de texto vacío (obviamente no es la mejor idea)
// variant 1 page.locator(`[aria-label="label name"].has(span:text-is(""))`); // variant 2 page.locator(`[aria-label="label name"].has(div[role="button"] span[text=""])`);pero obtuve un error
locator.textContent: Unexpected token "" while parsing selector "[aria-label="label name"]"La única solución que me funciona es verificar cada contenido de texto usando JS, por ejemplo:
const locator = page.locator('div[role="button"] >> span'); const elementsCount = await locator.count(); for(let i = 0; i < elementsCount; i++) { const spanTextContent = await locator.nth(i)?.textContent(); return spanTextContent === '' ? locator.nth(i) : null; } Otro ejemplo que da Unexpected token "" while parsing selector :
locator = page.locator(`body:has(div[class="L3eUgb"] >> a >> text="About")`); console.log(`locator.count(): ${await locator.count()}`);Parece que estás mezclando un poco mal los selectores de CSS y las pseudoclases personalizadas de Playwright.
Esto debería funcionar para usted:
page.locator('div[role="button"] >> span >> text=""')ACTUALIZAR:
page.locator(`body:has(div[class="L3eUgb"]) >> a >> text="About"`)