Tutorial Login auf einer Webseite, Forum etc...

    • VB.NET

    Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von TheForce.

      Tutorial Login auf einer Webseite, Forum etc...

      Hallo allerseits,
      ich habe ein Tutorial geschrieben das zeigt, wie man sich auf einer Webseite,
      Forum oder ähnlichem einloggen, bzw. anmelden kann.
      Ich zeige es an einem Beispiel, nämlich W-K-W(wer-kennt-wen.de/)

      Man braucht:
      1Button(Button1)
      2TextBoxen(TextBox1 und TextBox2)
      1WebBrowser(WebBrowser1)

      Hier der Code:

      VB.NET-Quellcode

      1. Public Class Form1
      2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      3. WebBrowser1.Document.GetElementById("loginName").InnerText = TextBox1.Text
      4. WebBrowser1.Document.GetElementById("password").InnerText = TextBox2.Text
      5. WebBrowser1.Document.Forms(0).InvokeMember("submit")
      6. End Sub
      7. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      8. WebBrowser1.Navigate("http://www.wer-kennt-wen.de/")
      9. End Sub
      10. End Class


      Edit:
      Habe eine Alternative ohne TextBoxen:
      Benötigt wird:
      1Button(Button1)
      1WebBrowser(WebBrowser1)

      Code:

      VB.NET-Quellcode

      1. Public Class Form1
      2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      3. Try
      4. Dim usr As String = InputBox("Bitte geben sie ihren Username ein", "Username")
      5. Dim psw As String = InputBox("Bitte geben sie ihr Passwort ein", "Password")
      6. WebBrowser1.Document.GetElementById("loginName").InnerText = usr.ToString
      7. WebBrowser1.Document.GetElementById("password").InnerText = psw.ToString
      8. WebBrowser1.Document.Forms(0).InvokeMember("submit")
      9. Catch ex As System.Net.WebException
      10. MsgBox(ex.Message)
      11. End Try
      12. End Sub
      13. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      14. WebBrowser1.Navigate("http://www.wer-kennt-wen.de/")
      15. End Sub
      16. End Class


      Kommentare bzw. Bewertungen erwünscht!

      Screenshots werden auch noch gemacht!

      mfg Tim;)

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „TG22997“ ()

      Und wenn die ID loginName bzw Password ist. falls nicht, müsste man sie die Namen aus dem Quelltext suchen.

      VB.NET-Quellcode

      1. WebBrowser1.Document.GetElementById("checkbox").SetAttribute("checked",...)

      auf das ... darfste selbst noch kommen...soll ja nicht C&P sein ;)
      Ich wollte auch mal ne total überflüssige Signatur:
      ---Leer---
      Hallo!

      Ich habe dies mal für Yahoo ausprobiert und für die Seite flirttown.net.

      Ergebnis: Bei Yahoo klappt es, bei flirttown.net nicht. Der Login-Button wird nicht betätigt.

      Hier ist der Quellcode:

      VB.NET-Quellcode

      1. Public Class Form1
      2. Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
      3. End Sub
      4. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      5. WebBrowser1.Navigate("http://www.flirttown.net/content/left.php/")
      6. End Sub
      7. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
      8. WebBrowser1.Document.GetElementById("UserName").SetAttribute("value", TextBox1.Text)
      9. WebBrowser1.Document.GetElementById("password").SetAttribute("value", TextBox2.Text)
      10. WebBrowser1.Document.GetElementById("Login").InvokeMember("click")
      11. End Sub
      12. End Class


      Das Problem ist hier, dass der Login in einem Frame geladen wird bzw. über den Pfad
      flirttown.net/content/left.php/

      Hier liest der Internet Explorer die Skripte nicht mehr (css wird nicht umgesetzt und wohl auch die js-Dateien nicht).

      Wenn ich die Seite aufrufe erscheint:



      Die Daten werden zwar bei Klick auf Login den Textboxen übergeben, aber der Login-Button wird nicht automatisiert betätigt.

      Könnte jemand nachschauen woran es hakt?

      Ich vermute evtl. an Einstellungen im IE oder aber an einer Anweisung im Quellcode der Seite
      http://www.flirttown.net/content/left.php/

      Hier könnte action="no_script.php" eine Rolle spielen, oder?

      Wäre super, wenn das jemand helfen könnte zu lösen.
      Vielen Dank schonmal. :)
      Also mein Code sieht jetzt so aus:

      VB.NET-Quellcode

      1. WebBrowser1.Document.GetElementById("date0").SetAttribute("value", TextBox3.Text)

      aber ohne den suchen button kann ich das nicht testen, weil wenn ich refresh oder update mache, wird die seite ja komplett neu geladen, oder zu mindest bei bahn.de.
      und auch wenn ich mir die links durchlese, bringt mich das auch nicht weiter, weil ich im quelltext den button finde, aber nichts womit ich ihn identifitieren könnte.(glaube ich zumindest).

      p.s ich will jetzt aber auch nicht die komplette html funktion erlernen, weil ich html eig. nur für diese aufgabe brauche, sprich wenn ich den suchen button hätte, bin ich quasi fertig, weil ich für die ergebniss seite eine lösung gefunden habe
      Hey,

      ich habe jetzt zwei Fragen.

      1. Wie kann ich ein Objekt von einem select-Komponent ("DropDown") auswaehlen? (Angenommen die Eintraege (Object) haben alle eine value oder durch Number)

      2. Wie koennte ich ein input-Submit das keine ID hat "invoken" bzw. ausrufen oder anklicken?

      Vielen Dank.

      -Epic
      Dropdowns sind auch nur Elemente und diese kannst du irgenwie mit diesen Get...-Funktionen finden. Was bei dir am sinnvollsten ist musst du wissen. Die Unterelemente (in HTML gesehen) sind die select-Elemente, dessen Select-Attribute nur setzen musst.
      Ihr müsst im Queltext nach dem Namen der Textboxen wo Username und Passwort eingegeben werden suchen!
      Bei Facebook währe der Code so

      VB.NET-Quellcode

      1. Public Class Form1
      2. Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
      3. End Sub
      4. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      5. WebBrowser1.Navigate("http://www.flirttown.net/content/left.php/")
      6. End Sub
      7. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
      8. WebBrowser1.Document.GetElementById("email").SetAttribute("value", TextBox1.Text)
      9. WebBrowser1.Document.GetElementById("pass").SetAttribute("value", TextBox2.Text)
      10. WebBrowser1.Document.GetElementById("Login").InvokeMember("click")
      11. End Sub
      12. End Class

      Wenn ihr nun in Zeile 12 & 13 seht ihr das dort nicht mehr Username & Passwort steht sondern der Name der Facebook Loginboxen!