Estoy usando titiritero y el script funciona bien cuando se ejecuta directamente con node.
Sin embargo, tan pronto como construyo la fuente con pkg , las funciones page.evaluate y page.waitForFunction comienzan a fallar con el error SyntaxError: Unexpected identifier .
El código en cuestión es
await page.evaluate((el) => {return el.value}, element) La razón por la que no funciona es porque pkg compila scripts usando v8::ScriptCompiler, las fuentes no se conservan. Entonces, básicamente (el) => {return el.value} se cambia a native code . Más detallesaquí .
Entonces, la solución es pasar una cadena a page.evaluate en lugar de una función.
Pude lograr esto con un truco peculiar de aspecto no tan agradable.
page.evaluate( `(() => { let els=document.querySelectorAll("${selector}"); let el = els[0]; return el.value; })();` );Pero esto se vuelve bastante complicado, ya que estoy usando selectores xpath y css.
lo que quiero hacer es algo asi
page.evaluate( `((el) => { return el.value; })();`, element ); Pero el no está definido aquí (en el contexto del navegador). He estado tratando de hacer que esto funcione durante muchas horas. Cualquier ayuda será apreciada.
otras referencias