Puppeteer sharp - ejecutar función del javascript de la pág. y get div con resul
Cerrado
Noelia
-
14 oct 2020 à 11:29
Irene Burn Mensajes enviados 449 Fecha de inscripción miércoles 2 septiembre 2020 Estatus Miembro Última intervención 24 marzo 2022 - 14 oct 2020 à 18:11
Irene Burn Mensajes enviados 449 Fecha de inscripción miércoles 2 septiembre 2020 Estatus Miembro Última intervención 24 marzo 2022 - 14 oct 2020 à 18:11
Consulta también:
- Evaluatefunctionasync
- Split javascript - Guide
- Transparencia div - Guide
- Pagar claro con rut - Guide
- Funcion del disco duro - Guide
- Funcion del escaner - Guide
1 respuesta
Irene Burn
Mensajes enviados
449
Fecha de inscripción
miércoles 2 septiembre 2020
Estatus
Miembro
Última intervención
24 marzo 2022
233
14 oct 2020 à 18:11
14 oct 2020 à 18:11
Buenas tardes Noelia,
Se me ocurren un par de posibles soluciones:
Tienes que tener en cuenta que en Puppeteer Sharp, como no podemos utilizar código de JavaScript nativo, todo se representa como un string. Por lo tanto, para expresiones como "3 + 4" sería correcto emplear EvaluateExpressionAsync, pero para funciones del tipo "async () => await window.nextGraphic()" o "() => 3 + 4" se debe utilizar EvaluateFunctionAsync. Te aconsejaría que probases con esta última opción.
En cualquier caso, si lo que estás empleando es una expresión, la manera recomendada por la documentación oficial de evaluar async es la siguiente (lo muestro con un ejemplo):
Por tanto, aconsejaría que en tu código añadieses el tipo de dato que devuelve la expresión a la que haces referencia: int, string, dynamic...etc. Empleando, por ejemplo dynamic en tu código:
También te recomiendo que visites la documentación oficial de la librería que utilizas aquí en donde puedes encontrar ejemplos que te pueden ayudar como este.
¡Espero haberte servido de ayuda!
Se me ocurren un par de posibles soluciones:
Tienes que tener en cuenta que en Puppeteer Sharp, como no podemos utilizar código de JavaScript nativo, todo se representa como un string. Por lo tanto, para expresiones como "3 + 4" sería correcto emplear EvaluateExpressionAsync, pero para funciones del tipo "async () => await window.nextGraphic()" o "() => 3 + 4" se debe utilizar EvaluateFunctionAsync. Te aconsejaría que probases con esta última opción.
En cualquier caso, si lo que estás empleando es una expresión, la manera recomendada por la documentación oficial de evaluar async es la siguiente (lo muestro con un ejemplo):
var someObject = await page.EvaluateExpressionAsync<string[]>(expression);
Por tanto, aconsejaría que en tu código añadieses el tipo de dato que devuelve la expresión a la que haces referencia: int, string, dynamic...etc. Empleando, por ejemplo dynamic en tu código:
var res = await page.EvaluateExpressionAsync<dynamic>("expresionEjecutar");
También te recomiendo que visites la documentación oficial de la librería que utilizas aquí en donde puedes encontrar ejemplos que te pueden ayudar como este.
¡Espero haberte servido de ayuda!
Irene Burn
Redactora - CCM en Español