C # Programme faisant attendre la fin du chargement de la page Web par le navigateur

Comment puis-je faire en sorte que mon programme attende le chargement de la page Web avant d’exécuter la prochaine déclaration J’ai essayé Process :: WaitForInputIdle (); mais ça n’attend pas.

ProcessStartInfo pInfo = new ProcessStartInfo("firefox.exe"); pInfo.Arguments = "http://example.com"; Process p = Process.Start(pInfo); p.WaitForInputIdle(); pInfo.Arguments = "http://example.net"; p = Process.Start(pInfo); p.WaitForInputIdle(); 

Tu ne peux pas. Le problème ici est que Firefox ne communique pas lorsque la page Web a été chargée. Vous verrez par exemple des problèmes lorsque Firefox souhaite se mettre à jour avant d’ouvrir la page Web. Comment va-t-il communiquer lorsque la page est chargée? Dans l’intervalle, l’exécutable de firefox.exe a été remplacé dans son intégralité et la connexion avec votre Process est perdue depuis longtemps.

WaitForInputIdle effectue un travail très spécifique, et ce n’est pas ce que vous attendez. Windows fonctionne à travers une pompe à message. Lorsque vous déplacez par exemple la souris sur une fenêtre, un message est envoyé à cette fenêtre. WaitForIdleInput renvoyé lorsque l’application a traité le premier message qu’elle a reçu, donc lorsque Windows sait qu’il est “réactif”.