Tengo el siguiente código:
it('7.1.8 - In Platform admin could review all ongoing and published notifications', async () => { const allNotificationList = await page.waitForXPath( '//header[contains(@class,"ant-layout-header")]//ul[contains(@class,"Notifications_banner-notifications")]', ); expect(allNotificationList.length).not.toBe(0); });allNotificationList obtiene la etiqueta ul y quiero verificar cuántas etiquetas li hay debajo de la etiqueta ul seleccionada.
¿Alguien sabe cómo lograr esto usando Puppetter?
Puede usar page.$x (o someElement.$x ) para devolver un ElementHandle[] ( page.waitForXPath devuelve un solo ElementHandle ):
const allNotificationList = await page.$x( '//header[contains(@class,"ant-layout-header")]//ul[contains(@class,"Notifications_banner-notifications")]', ); expect(allNotificationList.length).not.toBe(0);Sin embargo, no creo que en realidad espere los elementos, por lo que es posible que desee agregar la siguiente línea primero:
await page.waitForXPath( '//header[contains(@class,"ant-layout-header")]//ul[contains(@class,"Notifications_banner-notifications")]', );No tengo una solución para esto con Xpath, pero si está abierto a dar forma al selector de Xpath a CSS, lo siguiente hará lo que necesita. Usando childElementCount .
const selector = 'header.ant-layout-header * ul.Notifications_banner-notifications' const childCount = await page.$eval(selector, el => el.childElementCount) expect(childCount).toBeGreaterThan(0)(await page.$$('.Notifications_banner-notifications li')).length