releer el contenido de la ventana del navegador web / esperar la entrada del usuario

En mi programa, quiero dar un valor a 2 campos de entrada dentro de una ventana del navegador web y luego esperar a que el usuario haga clic en un botón de inicio de sesión. Después de esto, quiero que el programa salga del ciclo cuando la pantalla contenga "¡Bienvenido!" (que contiene después de iniciar sesión).

Pero ahora el problema: cuando se establecen los valores para nombre de usuario y contraseña, el bucle de inicio se inicia instantáneamente. Entonces, incluso si hago clic en el botón de inicio de sesión, el bucle aún contiene el contenido de la página web antes de hacer clic en el botón y se repetirá para siempre.

¿Como puedo resolver esto? Pensé en dos formas hasta ahora:

Vuelva a leer el código html después de hacer clic en el botón para que aparezca "¡Bienvenido!" estará dentro del código y luego el bucle se romperá, oEspere a que el usuario presione el botón de inicio de sesión.

Pero en ambos sentidos no tengo una idea real de cómo resolverlo.

WebBrowserWindow.WebBrowser1.Navigate("[...]")

Do
    If WebBrowserWindow.WebBrowser1.ReadyState = WebBrowserReadyState.Complete Then
        If WebBrowserWindow.WebBrowser1.Document.Body.InnerHtml.ToString.Contains("Login") Then Exit Do
    End If
    Application.DoEvents()
Loop

If WebBrowserWindow.WebBrowser1.Document.Body.InnerHtml.ToString.Contains("Login") Then
    WebBrowserWindow.WebBrowser1.Document.Window.Frames(2).Document.GetElementById("username").SetAttribute("value", sUser)
    WebBrowserWindow.WebBrowser1.Document.Window.Frames(2).Document.GetElementById("password").SetAttribute("value", sPass)
    Application.DoEvents()

    Dim DocumentCompletedHandler As WebBrowserDocumentCompletedEventHandler = Sub(dcsender As Object, dcargs As WebBrowserDocumentCompletedEventArgs)
                                                                                  If WebBrowserWindow.WebBrowser1.ReadyState = WebBrowserReadyState.Complete Then
                                                                                      RemoveHandler WebBrowserWindow.WebBrowser1.DocumentCompleted, DocumentCompletedHandler
                                                                                      'Put the code that should be executed when the user has logged in here.
                                                                                      MsgBox("it works")
                                                                                  End If
                                                                              End Sub

    AddHandler WebBrowserWindow.WebBrowser1.DocumentCompleted, DocumentCompletedHandler 
End If

WebBrowserWindow.Close()
Me.Close()

Noté el problema cuando intenté poner el código html en un cuadro de mensaje. Solo contenía el código 'antiguo'.

Gracias por adelantado

Respuestas a la pregunta(1)

Su respuesta a la pregunta