Login Abfragen klappt nicht

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von wlfmario.

    Login Abfragen klappt nicht

    Hallo zusammen,

    ich habe mir ein kleines Login gebastelt, das sich auf einer Webseite einlogt was auch alles wunderbar klappt.
    Nur wenn ich die Falschen Zugangsdaten angebe, sollte eine MsgBox erscheinen nur kommt diese nicht.

    Jetzt sehe ich den Fehler nicht, evtl. kann mir jemand sage was ich Falsch mache !

    Gruß Mario


    VB.NET-Quellcode

    1. 'Start Button = Lesen der Daten und Login.
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. WebBrowser1.Visible = True
    4. Dim INI As New INIDatei
    5. INI.Pfad = My.Application.Info.DirectoryPath & "\IniDatei.ini"
    6. Me.WebBrowser1.Document.GetElementById("login[u]").InnerText = INI.WertLesen("Userdaten", "Username", "Username")
    7. Me.WebBrowser1.Document.GetElementById("login[p]").InnerText = INI.WertLesen("Userdaten", "Passwort", "Passwort")
    8. Me.WebBrowser1.Document.GetElementById("login[p]").Focus()
    9. SendKeys.Send("{ENTER}")
    10. While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete
    11. Application.DoEvents()
    12. End While
    13. If Me.WebBrowser1.DocumentText.Contains("Login fehlgeschlagen") Then
    14. MsgBox("Login fehlgeschlagen", MsgBoxStyle.OkOnly)
    15. End If
    16. Me.MainMenuStrip.Enabled = True
    17. Me.Button1.Enabled = False
    18. End Sub
    19. End Class
    Sicher das der String "Login fehlgeschlagen" auch in dem Quellcode vorhanden ist?

    Ja ist er !

    Hier mal der Quellcode der Seite !

    HTML-Quellcode

    1. <div class="ffA fs12">
    2. <div class="liG2 cf">
    3. Login fehlgeschlagen
    4. </div>
    5. <div class="msG bgG1">
    6. <div class="warning">Login fehlgeschlagen!</div>
    7. Du hast entweder ein falsches <span class="fwB">Passwort</span> oder einen ungültigen <span class="fwB">Mitgliedsnamen</span> eingegeben.
    8. </div>
    9. <div class="mr10 pd15">
    10. <span class="fs14 fwB">Infos zum fehlerhaften Login</span><br>
    11. <ul class="lh20">
    12. <li> Beachte die Groß- und Kleinschreibung beim Passwort</li>
    13. <li> Passwort vergessen? Passwortänderung <a href="/password" class="coB3">anfordern</a></li>
    14. <li> Noch kein Mitglied? Jetzt <a href="/registration" class="coB3">kostenlos anmelden!</a></li>
    15. <li> Existiert der User noch? <a href="/user/gfhgg" class="coB3">Profil von gfhgg anschauen</a></li>
    16. </ul>
    17. </div>
    18. </div>


    Gruß Mario
    Dann nehm mal die ganze Zeile.

    Oder prüfe mal mit einer MsgBox was dein Programm ausgibt.
    Der Zeigt nicht mal die MsgBox an obwohl ich den Rest auskommentiert habe !
    Komische Sache

    VB.NET-Quellcode

    1. While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete
    2. Application.DoEvents()
    3. End While
    4. 'If Me.WebBrowser1.DocumentText.Contains("Login fehlgeschlagen") Then
    5. MsgBox("Login fehlgeschlagen", MsgBoxStyle.OkOnly)
    6. 'End If
    Ich habe sie mal auskommentiert und siehe da es geht !
    Aber Aber nur wenn ich die MsgBox Anzeigen lasse !
    Wenn ich jetzt die Abfrage starte geht es wieder nicht.

    VB.NET-Quellcode

    1. 'While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete
    2. Application.DoEvents()
    3. 'End While
    4. If Me.WebBrowser1.DocumentText.Contains("Login fehlgeschlagen") Then
    5. MsgBox("Login fehlgeschlagen !")
    6. End If
    7. Me.MainMenuStrip.Enabled = True
    8. Me.Button1.Enabled = False
    9. End Sub
    Packe doch sowas lieber in ein Event...

    VB.NET-Quellcode

    1. Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
    2. End Sub
    Und wieso löst du es nicht so:

    VB.NET-Quellcode

    1. If WebBrowser1.ReadyState = WebBrowserReadyState.Complete Then
    2. If WebBrowser1.DocumentText.Contains("Login fehlgeschlagen!") Then
    3. MsgBox("Tja....")
    4. End If
    5. End If


    Ich frage mich sowieso warum die Schleife nicht geht. Bei mir geht das nämlich einwandfrei...

    ?(
    Ist auch eine Möglichkeit !
    Ob es jetzt Vorteile bringt weiß ich nicht ich habe es erst mal so gelöst.

    VB.NET-Quellcode

    1. Dim INI As New INIDatei
    2. INI.Pfad = My.Application.Info.DirectoryPath & "\IniDatei.ini"
    3. WebBrowser1.Url = New Uri("http://www.webseite.de/user/" & INI.WertLesen("Userdaten", "Username", "Username") & "/friends")
    4. Do While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete
    5. Application.DoEvents()
    6. Loop
    7. WebBrowser1.Navigate("http://www.webseite.de/user/" & INI.WertLesen("Userdaten", "Username", "Username") & "/friends")
    8. Do While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete
    9. Application.DoEvents()
    10. Loop
    11. ...
    12. ...