Puppeteer sharp - ejecutar función del javascript de la pág. y get div con resul
Cerrado
Noelia
-
Modificado el 14 oct 2020 a las 11:48
Irene Burn Mensajes enviados 449 Fecha de inscripción miércoles, 2 de septiembre de 2020 Estatus Administrador Última intervención jueves, 24 de marzo de 2022 - 14 oct 2020 a las 18:11
Irene Burn Mensajes enviados 449 Fecha de inscripción miércoles, 2 de septiembre de 2020 Estatus Administrador Última intervención jueves, 24 de marzo de 2022 - 14 oct 2020 a las 18:11
Consulta también:
- Evaluatefunctionasync
- Eagle get - Programas - Gestores de descargas
- Div transparente - Guide
- No se puede ejecutar esta aplicacion en el equipo - Guide
- Funcion de la tecla insert - Guide
- Desactivar javascript chrome - Guide
1 respuesta
Irene Burn
Mensajes enviados
449
Fecha de inscripción
miércoles, 2 de septiembre de 2020
Estatus
Administrador
Última intervención
jueves, 24 de marzo de 2022
233
14 oct 2020 a las 18:11
14 oct 2020 a las 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