Estoy escribiendo una función en javascript:
const getContent = async (page, element) => { const contentStr = await page.evaluate(() => { const contentEl = document.querySelector(element); const content = contentEl?.getAttribute("content"); if (content != null && content.length > 0) { return content; } else { return null; } }); return contentStr; };Al ejecutar esta función, me sale un error:
Error: la evaluación falló: ReferenceError: el elemento no está definido
¿Alguien puede ayudar?
Esta es la firma de la función de la página del titiritero.evaluar
page.evaluate(pageFunction[, ...args])Como puede ver, puede pasar argumentos a pageFunction como parámetros adicionales al llamar a page.evaluate. La razón por la que esto es necesario es porque un contexto de ejecución es el nodo js mientras que el otro es el navegador Chrome y esos contextos se ejecutan en diferentes procesos y no comparten memoria, excepto cuando pasa variables a través de la API de titiritero.
Entonces, en su caso, esto podría funcionar (no probado):
const getContent = async (page, element) => { const contentStr = await page.evaluate((element) => { const contentEl = document.querySelector(element); const content = contentEl?.getAttribute("content"); if (content != null && content.length > 0) { return content; } else { return null; } },element); return contentStr; };