Estoy trabajando con titiritero, quiero seleccionar un tr buscando un td con un nombre de título específico.
Lo intenté:
const targetPage = page; const td = 'td[title="18to22"]'; const td1 = await waitForSelectors([[td]], targetPage, timeout); async function waitForSelectors(selectors, frame, timeout) { for (const selector of selectors) { try { return await waitForSelector(selector, frame, timeout); } catch (err) { console.error(err); } } throw new Error( "Could not find element for selectors: " + JSON.stringify(selectors) ); }que funciona Ahora quiero obtener la fila principal (tr)
¿Cómo hago esto?
No puede resolverlo únicamente con selectores CSS ( :has() "tiene" un soporte deficiente hasta ahora).
Usaría page.$eval junto con Node.parentElement (también recomiendo el encadenamiento opcional , pero, por supuesto, un <td> generalmente tiene un padre <tr> )
En el siguiente ejemplo, recupero su innerText , por supuesto, puede usar el elemento de nodo según lo necesite.
const parent = await page.$eval('td[title="18to22"]', el => el?.parentElement?.innerText)