Estoy raspando una página y estos son los datos que estoy buscando:
<div class="account-balance"> <span class="name">Total balance</span> <span class="balance">$10</span> </div>Si busco el texto "saldo total", puedo encontrarlo:
await page.waitForSelector('text=Total balance');Pero si trato de encontrar un nombre de clase, se agota el tiempo:
await page.waitForSelector('.account-balance');Probé waitForSelector y locator, y cada vez que me dirijo a un nombre de clase como este, falla. Gracias por cualquier ayuda.
Puede haber la posibilidad de que haya varias clases con el mismo valor. Puedes probar con xpath.
await page.waitForSelector(xpath=//div[@class='account-balance']);O
await page.waitForSelector(xpath=//span[text()='Total balance']/..);Tienes que ir al nombre de la clase para el texto Total balance y luego esperarlo.
await page.waitForSelector('.account-balance > .name');En lugar de usar un motor de selección (como texto o css), intente usar este
span:has-text('Total balance'); Además, verifique si hay varios textos con Total balance . En ese caso, use el n- nth comparador para seleccionar el texto; por ejemplo, puede usar este localizador para seleccionar la tercera instancia de Total balance
await page.locator(':nth-match(:text("Total balance"), 3)').click();