In Webbrowser-Element Text einfügen

  • VB.NET

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

    In Webbrowser-Element Text einfügen

    Hallo,
    ich habe ein problem, wenn ich bei meinen WebBrowser-Steuerelement in ein bestimmtes element einen text einfügen will:
    mein code:

    VB.NET-Quellcode

    1. Private Sub WebBrowser2_DocumentCompleted(sender As Object, e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser2.DocumentCompleted
    2. If WebBrowser2.Url = New Uri("die URL") Then
    3. WebBrowser2.Document.GetElementById("login_email").InnerText = TextBox1.Text
    4. WebBrowser2.Document.GetElementById("login_password").InnerText = TextBox2.Text
    5. WebBrowser2.Document.GetElementById("login_cmd").Focus()
    6. My.Computer.Keyboard.SendKeys(" ")
    7. Else
    8. ...
    9. End If
    10. End Sub

    immer wenn ich das ganze ausführe bekomme ich folgenden Fehler: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
    kann mir jemand sagen, was ich falsch mache???

    Danke schonmal für eure hilfe
    Gruß ramon1611
    sicher dass es diese id gibt? ansonsten versuch mal .setattribute("value","was rein soll")

    zum thema invokemember: du musst die form, nicht den knopf submitten. also document.forms(index).invokemember

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Gelöschter Benutzer“ ()

    du musst aber auch noch den Formnamen berücksichtigen, such mal im Quelltext nach "<form", dann sollte es klappen. Ich hab gerade keine Möglichkeit zu testen, aber irgendwie so sollte das dann aussehen:

    VB.NET-Quellcode

    1. WebBrowser2.Document.Forms(1).GetElementById("login_email").InnerText = TextBox1.Text

    Wobei die 1 dann für den Index steht, probier einfach mal von 0 bis 3 durch.

    Gelöschter Benutzer schrieb:

    hier kann ich dir nur ans herz legen, den login über einen webrequest zu machen, es ist auf den ersten blick zwar komplizierter, ist aber besser und vor allem schöner/performanter

    Mal sehn ... aba trotzdem danke

    Telcrome schrieb:

    du musst aber auch noch den Formnamen berücksichtigen, such mal im Quelltext nach "<form", dann sollte es klappen. Ich hab gerade keine Möglichkeit zu testen, aber irgendwie so sollte das dann aussehen:

    VB.NET-Quellcode

    1. WebBrowser2.Document.Forms(1).GetElementById("login_email").InnerText = TextBox1.Text

    Wobei die 1 dann für den Index steht, probier einfach mal von 0 bis 3 durch.

    werd ich mal versuchen
    danke
    //EDIT: das mit "WebBrowser2.Document.Forms(1).GetElementById("login_email").InnerText = TextBox1.Text" geht nicht, da es bei Forms() kein GetElementById gibt, sondern nur GetElementByTagName
    so ich hab es mir jetzt nochmal angesehen, du darfst einfach nur nicht das documentcompletet Event nutzen, das Event wird bei der Seite anscheinend zu früh ausgelöst, weil der Browser zwei bis dreimal nachfragt ob Skripte erlaubt sind, aber das Event schon beim ersten Mal ausgelöst wird.
    Also musst du das wohl in einen Button legen, oder eine Pause einbauen...
    Guten Morgen,

    habe auch mal eine Frage diesbezüglich.
    Habe das Problem das auf einer bestimmten Webseite meine Felder nicht ausgefüllt werden,
    vielleicht kann mir jmd. auf die Sprünge helfen.

    Mein Button soll z.Zt. nur folgendes machen,...

    VB.NET-Quellcode

    1. Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
    2. Try
    3. WebBrowser1.Document.GetElementById("startloginname").SetAttribute("value", TextBox2.Text)
    4. WebBrowser1.Document.GetElementById("startloginsslpw").SetAttribute("value", TextBox3.Text)
    5. Catch ex As Exception
    6. MsgBox("FEHLER")
    7. End Try
    8. End Sub


    Auf anderen Webseiten funkt. es, nur auf dieser nicht. Ist es eventuell eine Verschachtelung? Auszug aus dem Quelltext der betr. Seite.

    HTML-Quellcode

    1. <body onload="document.login.startloginname.focus()">
    2. <form method="post" action="index.php" name="login" target="Banner">
    3. <table class="loginRahmen" >
    4. <tr>
    5. <td>
    6. <script type="JavaScript">
    7. var message="";
    8. function clickIE() {if (document.all) {(message);return false;}}
    9. function clickNS(e) {if
    10. (document.layers||(document.getElementById&&!document.all)) {
    11. if (e.which==2||e.which==3) {(message);return false;}}}
    12. if (document.layers)
    13. {document.captureEvents(Event.MOUSEDOWN);document.onmousedown=clickNS;}
    14. else{document.onmouseup=clickNS;document.oncontextmenu=clickIE;}
    15. </script>
    16. <table class="login" id="AutoNumber1">
    17. <tr>
    18. <td class="imgblack" colspan="2"><img src="pic/kasys1.jpg"></td>
    19. </tr>
    20. <tr>
    21. <td colspan="2" class="tcenter alert">&nbsp;</td>
    22. </tr>
    23. <tr class="heigh30">
    24. <td class="width50p lable">Benutzername:</td>
    25. <td valign="bottom"><input type="text" name="startloginname" value="" size="25"></td>
    26. </tr>
    27. <tr class="height30">
    28. <td class="width50p lable">Kennwort:</td>
    29. <td><input type="password" name="startloginsslpw" size="25" style="display: none"><input type="password" name="startloginsslpw" size="25"></td>
    30. </tr>
    31. <tr class="heigh30">
    32. <td colspan="2" class="tcenter"><input type="submit" class="button" value="Anmelden" name="B1" /></td>
    33. </tr>
    34. </table>
    35. </td>
    36. </tr>
    37. </table>
    38. </form>
    39. </body>


    Bin für jeden Gedankenanstoss dankbar.

    Viele Grüße kc95