Tengo un proyecto de NodeJS Typescript, y estoy tratando de obtener todas las etiquetas 'p' de un sitio web renderizado dinámicamente (no HTML ESTÁTICO, sino que realiza múltiples solicitudes al backend para obtener algunos datos y renderizar la página web). Estoy usando mecanografiado y tengo ["es6", "dom"] en mi lib, y tengo el siguiente código (este es todo mi código en el proyecto hasta ahora):
import puppeteer from 'puppeteer'; const getLinks = async () => { const browser = await puppeteer.launch(); const [page] = await browser.pages(); await page.goto('https://webscraper.io/test-sites', { waitUntil: 'networkidle0' }); const links = await page.evaluate(() => document.querySelectorAll('p')); console.log(links); await browser.close(); } Sin embargo, sigo quedando undefined cuando imprimo links . Supongo que esto se debe a que el programa no puede encontrar ninguna etiqueta 'p'. ¿Por qué es esto?
Nota: la URL proporcionada es solo un ejemplo. Lo he intentado en varios sitios diferentes y sigo sin definir.
¡Cualquier ayuda es apreciada! ¡Gracias!
No use page.evaluate para obtener elementos, use waitForSelector / waitForXpath / $x / $$ en su lugar (consulte el documento de Titiritero para conocer las diferencias entre ellos: https://devdocs.io/puppeteer/index#pageselector-1 ):
const links: ElementHandle[] = await mainPage.$$("p");