no puedo encontrar nada eso dará 100% de certeza. El ejemplo mencionado (e.Url.Equals (webBrowser1.Url)) puede funcionar para un WebBrowser.Navigate simple (url), sin embargo, en mi caso, hago clic en nodos en el código para abrir nuevos marcos en marcos existentes. La mayoría de las veces que el fuego de "Navegación" y "Documento completado" será el mismo, pero de nuevo NO siempre. "isBusy = false" y "ReadyState = Complete" siempre serán el caso cuando esté terminado (al menos hasta el momento) pero también algunas veces tendrá este estado cuando aún se esté cargando. Los marcos de conteo también me parecen inútiles, en un caso DocumentCompleted se dispara 23 veces, sin embargo, todos los fotogramas y los fotogramas sub (sub sub y así sucesivamente) son 14 en total.
Lo único que parece funcionar es esperar un corto período (1 o 2 segundos?) Para ver si sucede algo (cualquier evento disparado, cualquier estado cambia).
Hmm, encontré otra solución para mí. A menudo no estamos interesados en que se cargue toda la página, a menudo queremos que existan ciertos elementos. Entonces, después de cada DocumentCompleted y cuando "isBusy = false" y "ReadyState = Complete" podemos buscar el DOM si este elemento existe.
La manera fácil de esta respuesta lo hizo por mí. Aunque estoy usando el control axWebBrowser1. Terminé usando lo siguiente. if (e.uRL.Equals (axWebBrowser1.LocationURL)) – IamBatman
¡¡Genial !! Muchas gracias – Grcn