Frage

Ich bin mit einem WebBrowser-Steuerelement auf einer Webseite einzuloggen.

WbBrowser.Navigate("http://www.foo.com/login.php")

Sobald die Seite geladen I anmelden, um den folgenden Code

While WbBrowser.ReadyState <> WebBrowserReadyState.Complete
            Application.DoEvents()
        End While

WbBrowser.Document.GetElementById("user_login").SetAttribute("Value", "username")
WbBrowser.Document.GetElementById("user_pass").SetAttribute("Value", "password")
WbBrowser.Document.Forms("loginform").InvokeMember("submit")

Das funktioniert gut. Nach erfolgreicher Anmeldung muss ich zu einer anderen Seite navigieren. Dies geschieht nur, wenn das Login korrekt ist. Die Frage ist hier als Sohn wie die Login-Seite der Readystate von WebBrowser-Steuerelement wird vollständig und auch die nächste Codezeile vor dem ich Login auf Website wird in einem Fehler ausgeführt und die Ergebnisse geladen wird, da ich nicht angemeldet bin.

WbBrowser.Navigate("http://www.foo.com/page2.php")

Wie kann ich meine Anwendung warten, bis die Anmeldung mache abgeschlossen sein und dann die obige Codezeile auszuführen. Irgendwelche Ideen?

War es hilfreich?

Lösung

Versuchen Sie den Überblick über Ihren Anwendungszustand in einer Variablen halten, und das WebBrowser.DocumentCompleted Ereignis verwenden, zu testen, ob die Anmeldung übergeben.

Andere Tipps

Salvete! Ich antwortete nur einen ähnlichen Beitrag hier, genau dieses Verfahren ausführen zu können, nehmen Sie bitte einen Blick: Wie warten, bis WebBrowser ist vollständig geladen in VB.NET?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top