Ya no tienes que buscar más por todo internet ya que estás al lugar necesario, poseemos la respuesta que buscas y sin liarte.
Solución:
Debe esperar a que el navegador se haya cargado lo suficiente antes de ejecutar JavaScript. Es tentador comenzar a intentar acceder al DOM en OnFrameLoadStart, mientras que el V8Context se habrá creado y podrá ejecutar un script que el DOM no habrá terminado de cargar. Si necesita acceder al DOM lo antes posible, suscríbase a DOMContentLoaded.
A continuación se muestran algunos ejemplos de ejecución de JavaScript.
browser.RenderProcessMessageHandler = new RenderProcessMessageHandler();
public class RenderProcessMessageHandler : IRenderProcessMessageHandler
// Wait for the underlying JavaScript Context to be created. This is only called for the main frame.
// If the page has no JavaScript, no context will be created.
void IRenderProcessMessageHandler.OnContextCreated(IWebBrowser browserControl, IBrowser browser, IFrame frame)
const string script = "document.addEventListener('DOMContentLoaded', function() alert('DomLoaded'); );";
frame.ExecuteJavaScriptAsync(script);
//Wait for the page to finish loading (all resources will have been loaded, rendering is likely still happening)
browser.LoadingStateChanged += (sender, args) =>
//Wait for the Page to finish loading
if (args.IsLoading == false)
browser.ExecuteJavaScriptAsync("alert('All Resources Have Loaded');");
//Wait for the MainFrame to finish loading
browser.FrameLoadEnd += (sender, args) =>
//Wait for the MainFrame to finish loading
if(args.Frame.IsMain)
args.Frame.ExecuteJavaScriptAsync("alert('MainFrame finished loading');");
;
Aquí puedes ver las comentarios y valoraciones de los lectores
Acuérdate de que tienes permiso de agregar una reseña si te fue de ayuda.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)