Attendre le chargement d'une page web en C#

Signaler
-
Bonjour, j'utilise le code suivant pour me connecter à un site et naviguer par biais de fonctions html :
//Ouvre Internet Explorer
EventHandlers e = new EventHandlers();
SHDocVw.InternetExplorer IE = new SHDocVw.InternetExplorer();
object Empty = 0;
IE.BeforeNavigate2 += new SHDocVw.DWebBrowserEvents2_BeforeNavigate2EventHandler(e.OnBeforeNavigate2);
IE.Visible = true;
object URL = "http://Le_Site_Sur_Lequel_Je_Navigue";
IE.Navigate2(ref URL, ref Empty, ref Empty, ref Empty, ref Empty);
//Attend la fin du chargement de la page
while (IE.ReadyState != SHDocVw.tagREADYSTATE.READYSTATE_COMPLETE) {
    //Ce code fonctionne très bien jusqu'à la sortie du while
}
 
//Mais à partir de là, ça se complique.
IE.Document.getElementById("Id_de_l'élément_sur_lequel_je_veux_cliquer").click();
while (IE.ReadyState != SHDocVw.tagREADYSTATE.READYSTATE_COMPLETE) {
    //Ici, il n'y a aucune attente
}
//C'est là le problème, à cette instance, le programme ne passe pas dans le while et mon programme continu sans se soucier de savoir si la page a été chargée et de ce fait me génère une erreur


Savez-vous pourquoi le code à cet endroit précis ne s'exécute pas ?
Merci.