2013-07-22 2 views
0

J'ai une méthode qui automatise la connexion sur un site Web en fonction des noms d'entrée de l'authentification, leurs valeurs, et en cliquant sur le bouton "login". Une fois connecté, je veux naviguer vers une page qui nécessite cette authentification. J'ai essayé cette mise en œuvre de manière suivante:IHTMLDocument2 attendre le chargement après le clic

private void authenticateWebpage(string username, string userValue, string password, string passwordValue, string submitButton) 
    { 
     mshtml.IHTMLDocument2 doc = ((mshtml.HTMLDocumentClass)webPage.Document); 
     ((mshtml.IHTMLElement)doc.all.item(username)).setAttribute("value", userValue); 
     ((mshtml.IHTMLElement)doc.all.item(password)).setAttribute("value", passwordValue); 
     ((mshtml.HTMLInputElement)doc.all.item(submitButton)).click(); 
     doc.url = "http://facebook.com/messages"; 

    } 

Mon problème est que l'URL est en cours d'aller à "http://facebook.com/messages" avant l'authentification est terminée. Est-il possible d'attendre que l'authentification se termine avant de naviguer vers une URL différente? Merci.

+0

Cela dépend de l'élément (submitButton)). Click(). Si le clic déclenche une nouvelle fenêtre, vous devez gérer DocumentComplete dans cette fenêtre. –

Répondre

0

Ajout d'un Thread.Sleep (5000) devrait fonctionner dans votre cas. 5000 est en millisecondes donc c'est en fait 5 secondes. Vous pouvez augmenter le temps selon vos besoins.

Merci.

+0

C'est si le processus de connexion est terminé dans les 5 secondes. Ajouter plus de temps pour gérer de longs temps de chargement pour certains sites ne serait pas souhaitable si la page était déjà chargée –

Questions connexes