Quiero probar si se ha renderizado un elemento. Así que quiero esperar que si está presente. ¿Hay un comando para esto?
await page.goto('<http://localhost:3000/>'); const logo = await page.$('.logo') // expect(logo.toBeInDocument())Dado que el equipo de dramaturgos desaconseja el uso de ElementHandle (page.$(), page.$$()), puede usar el objeto Locator y el método count():
expect(await page.locator('data-testid=exists').count()).toBeTruthy(); expect(await page.locator('data-testid=doesnt-exist').count()).toBeFalsy();Si desea verificar si el elemento se representa (supongo que quiere decir visible), puede usar la afirmación toBeVisible :
await expect(page.locator('data-testid=is-visible')).toBeVisible();Si consulta un elemento con page.$() , simplemente puede usar:
const logo = await page.$('.logo'); if (logo) { } Del mismo modo, si consulta varios elementos con page.$$() :
const logo = await page.$$('.logo'); if (logo) { } Dado que este ejemplo devuelve (después de esperar) una matriz de identificadores de elementos, también puede usar la length de la propiedad en la condición:
const logo = await page.$$('.logo'); if (logo.length) { } La clave en todos estos ejemplos es esperar la promesa de que page.$() y page.$$() regresen.
await expect(page.locator('.logo')).toHaveCount(1)