Wie klicke ich per Code einen Button im Webbrowser?

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Takafusa.

    Wie klicke ich per Code einen Button im Webbrowser?

    gibt es da jetzt eine Lösung? weil ich habe gerade das selber Problem und komme nicht weiter, da ich jetzt schon sämtliche Codes ausprobiert habe, wäre ich für jede Hilfe dankbar..

    Mein Aktueller Sourcecode:

    VB.NET-Quellcode

    1. WebBrowser1.Document.GetElementById("serverName").InnerText = TextBox1.Text
    2. Try
    3. WebBrowser1.Document.GetElementById("submit")
    4. Catch ex As System.Net.WebException
    5. MsgBox(ex.Message)
    6. End Try
    7. End Sub


    Und hier der HTML Code wo ich es auslese:

    HTML-Quellcode

    1. <input type="text" name="serverName" class="form-control" placeholder="New server name">
    2. <button type="submit" class="btn btn-primary">SAVE NEW NAME</button>
    3. <script async="" src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>



    Liebe grüße
    getsha

    ausgelagert aus Button in Webbrowser klicken - Probleme ~VaporiZed

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“ ()

    getsha schrieb:

    WebBrowser1.Document.GetElementById("submit")


    Siehst du da irgendwo eine Id beim button im html? Ich nicht, damit kann das nicht klappen, achte auf den Funktions-Namen.

    Du kannst an den Buttun kommen mit Document.getElementsByTagName oder Document.getElementsByClassName. Du hasst dann allerdings ein Array, wenn da dann mehrere Elemente drin sind, musst du irgendwie den richtigen finden.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Takafusa“ ()

    getsha schrieb:

    da ich jetzt schon sämtliche Codes ausprobiert habe
    Wenn Du wirklich sämtliche Codes ausprobiert hättest (es gibt sicherlich tausende von Möglichkeiten), und es funktioniert nicht, dann geht es wohl auch nicht. Aber irgendwie werd ich das Gefühl nicht los, dass die Aussage nicht den Fakten entspricht.
    Bisher steht ja da nur was von: Webbrowser, gib mir mal das Element mit der Bezeichnung XYZ. Aber Du machst ja gar nix damit …

    btw:
    Bevor Du weitermachst, bitte die empfohlenen VS-Einstellungen verwenden.
    und
    Fange nur Exceptions ab, die Du kennst und sinnvoll bearbeiten kannst.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    Das ist eine Sache, auf die der TE hätte kommen sollen ;)
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    hatte ich auch alle versucht aber es geht, also ich hab alles soweit geschafft den Login den text zur Textbox nur das er es abschicken tut funktioniert nicht, soll ich mal mein ganzen source posten ?

    Und vielen lieben dank für so viele antworten, damit hätte ich nicht mit gerechnet.

    -getsha
    ​ausgelagert aus Button in Webbrowser klicken - Probleme ~VaporiZed
    In diesem Fall brauchste den Code nicht posten. Habe aber eine korrektur meiner Aussage zu machen, mit den von mir genannten Funktionen bekommst du keinen Array sondern eine HtmlElementCollection, sorry, habe mich geirrt. Ich nutze dieses Webbrowsercontrol nie, daher der irrtum.

    Ich habe einfach mal ein HTML erstellt, dieses setze ich als DocumentText für den browser. Der button hat wie bei dir keine ID.

    HTML-Quellcode

    1. <!DOCTYPE HTML>
    2. <html>
    3. <body>
    4. <button type="submit" class="mysuperdooperclass" onclick="btnClick()">SAVE NEW NAME</button>
    5. <p id="display">0</p>
    6. <script>
    7. var clicks = 0;
    8. function btnClick()
    9. {
    10. clicks++;
    11. document.getElementById("display").innerHTML = clicks;
    12. }
    13. </script>
    14. </body>
    15. </html>


    Mit diesem Code "klicke" ich dann den button.

    VB.NET-Quellcode

    1. Dim buttons As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("button")
    2. For Each btn As HtmlElement In buttons
    3. Dim className As String = btn.GetAttribute("className")
    4. If className.Equals("mysuperdooperclass") Then
    5. btn.InvokeMember("click")
    6. End If
    7. Next


    Das müsstest du nun an deine Situation anpassen. Evtl. um die Identifizierung zu verbessern, noch testen ob InnerHTML des Buttons gleich ist mit dem des gesuchten buttons.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Takafusa“ ()