[Webbrowser Control] Login und Posten in einem WoltLab Burningboard.

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von themalta.

    [Webbrowser Control] Login und Posten in einem WoltLab Burningboard.

    Hallo,

    ich möchte ein Programm schreiben, was eine generierte Fehlermeldung unter einem bestimmten Nutzernamen in einem WotltLab Burningboard postet. (Genau so eins, wie dieses hier von vb-paradise.de)

    Nehmen wir zum Beispiel jetzt das VB-Paradise Board und wollen etwas posten:

    VB.NET-Quellcode

    1. module_deletechache.Main()
    2. loadURL(WebBrowser, "http://www.vb-paradise.de/index.php?form=UserLogin")
    3. waitURL()
    4. WebBrowser.Document.DomDocument.GetElementById("loginUsername").Value = "yakubutsu"
    5. WebBrowser.Document.DomDocument.GetElementById("loginPassword").Value = "testpassword123"
    6. WebBrowser.Document.Forms(1).InvokeMember("submit")
    7. WaitingFor(1)
    8. loadURL(WebBrowser, "http://www.vb-paradise.de/index.php?form=ThreadAdd&boardID=14")
    9. waitURL()
    10. 'Post in Textfield: Test 1
    11. 'Doc.Forms("text").DomElement("text").Value = "test"
    12. 'Click Submit Button: Test 1
    13. 'WebBrowser.Document.Forms("click").InvokeMember("submit")
    14. 'Click Submit Button: Test 2
    15. 'For Each element As HtmlElement In WebBrowser.Document.GetElementsByTagName("input")
    16. 'If element.GetAttribute("type") = "submit" Then
    17. 'element.InvokeMember("send")
    18. 'End If
    19. 'Next


    Ich kann mich einloggen und erfolgreich "http://www.vb-paradise.de/index.php?form=ThreadAdd&boardID=14" ansurfen, kann aber weder erfolgreich in die Textbox des Beitrages schreiben, noch kann ich den "Absenden" Button drücken.

    Ich habe die versuchten, unerfolgreichen Versuche als kommentare markiert.

    Ich habe gehofft, einer hat sowas schonmal probiert und kennt eine Lösung.
    Hallo,

    ich hab jetzt mit einigem probieren das "subject" Feld ausfüllen können und außerdem den Submit button betätigen können.

    Die jeweils dafür verantwortlichen und erfolgreichen zeilen wurde im code markiert:

    VB.NET-Quellcode

    1. Private Sub addupBTN_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles addupBTN.Click
    2. module_deletechache.Main()
    3. 'Dim mydoc As HtmlDocument = WebBrowser.Document
    4. loadURL(WebBrowser, "http://www.vb-paradise.de/index.php?form=UserLogin")
    5. waitURL()
    6. WebBrowser.Document.DomDocument.GetElementById("loginUsername").Value = "yakubutsu"
    7. WebBrowser.Document.DomDocument.GetElementById("loginPassword").Value = "testpassword"
    8. WebBrowser.Document.Forms(1).InvokeMember("submit")
    9. WaitingFor(1)
    10. loadURL(WebBrowser, "http://www.vb-paradise.de/index.php?form=ThreadAdd&boardID=8")
    11. waitURL()
    12. 'Post in Subject: Test 1 [Test 1: Subject: successful]
    13. WebBrowser.Document.DomDocument.GetElementById("subject").Value = "test"
    14. 'Post in Textfield: Test 1 [Post: Ongoing]
    15. 'mydoc.Forms("f").GetElementsByTagName("textarea").GetElementsByName("text").Item(0).InnerText = "Test text"
    16. 'Click Submit Button: Test 1, Test 2, Test 3 [Test 3: Submit: successful]
    17. 'WebBrowser.Document.Forms("click").InvokeMember("submit") 'unsuccessful
    18. 'WebBrowser.Document.DomDocument.GetElementByTagName("send").InvokeMember("submit") 'unsuccessful
    19. WebBrowser.Document.GetElementsByTagName("input").GetElementsByName("send").Item(0).InvokeMember("click") 'successful
    20. End Sub


    Was mir jetzt aber noch fehlt, ist das beitragsfeld (textfield) da komme ich derzeit noch nicht weiter. Ich bin mir sicher, dass ich wie beim Submit button mit GetElementsByTagName & GetElementsByName arbeiten muss, hab aber noch nicht den richtigen Weg gefunden...

    Vielleicht sieht ja einer was ich falsch mache. Würde mich über hinweise freuen :)

    //Edit:
    In Ordnung, ich konnte jetzt auch das Beitragsfeld ausfüllen.

    VB.NET-Quellcode

    1. 'Post in Textfield: Test 1, Test 2 [Test 2: Post: successful]
    2. 'mydoc.Forms("text").GetElementsByTagName("textarea").GetElementsByName("text").Item(0).InnerText = "Test text"
    3. WebBrowser.Document.DomDocument.GetElementById("text").Value = "Test text"


    Damit hat es sich erledigt. Ich kann jetzt einloggen, eine Seite ansurfen und Absenden.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „yakubutsu“ ()

    Hallo, ich weiß das Thema ist schon alt und falls keiner antwortet erstell ich auch ein neues Thema aber ich wollte es erstmal so probieren.
    Ich hab den Code jetzt so übernommen, aber ich bekomme noch Fehlermeldungen, ich denke ich muss irgendwas improtieren, aber ich weiß nicht was.
    "module_deleteache" wurde nicht deklariert. Auf das Objekt kann aufgrund einer Schutzstufe mölicherweise nicht zugegfiffen werden.
    "loadURL" wurde nicht deklariert. Auf das Objekt kann aufgrund einer Schutzstufe mölicherweise nicht zugegfiffen werden.
    "waitURL" wurde nicht deklariert. Auf das Objekt kann aufgrund einer Schutzstufe mölicherweise nicht zugegfiffen werden.
    "WaitingFor" wurde nicht deklariert. Auf das Objekt kann aufgrund einer Schutzstufe mölicherweise nicht zugegfiffen werden.
    "loadURL" wurde nicht deklariert. Auf das Objekt kann aufgrund einer Schutzstufe mölicherweise nicht zugegfiffen werden.
    "waitURL" wurde nicht deklariert. Auf das Objekt kann aufgrund einer Schutzstufe mölicherweise nicht zugegfiffen werden.

    Was mache ich falsch?
    Was muss ich importieren?