WebBrowser. Google blockiert button-klick?

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von nafets3646.

    WebBrowser. Google blockiert button-klick?

    Guten Tag allerseits,
    ich versuche mit der WebBrowser-Komponente die "Erfahrungsbericht schreiben"-Funktion von bei Google gelisteten Restaurants anzusprechen.
    Der dazugehörige Button lässt sich allerdings nicht klicken, weder manuell mit der Maus, noch über VB-Code.




    Kann mir hier jemand helfen?
    Mein Ansatz bis jetzt sieht folgendermaßen aus:

    VB.NET-Quellcode

    1. Dim htmldoc = WebBrowser1.Document
    2. Dim pulledtags = htmldoc.GetElementsByTagName("span")
    3. For Each item In pulledtags
    4. If item.innertext = "Erfahrungsbericht schreiben" Then
    5. MsgBox("span found!") ' nicht VB.NET konform; nur zur Kontrolle
    6. item.InvokeMember("click")
    7. End If
    8. Next


    Der Button wird mit dem obigen Code auch gefunden und die MessageBox mit "span found!" angezeigt, jedoch lässt er sich damit nicht klicken. :huh:

    Grüße,
    leviathan2 :)
    Wie wärs, wenn du Gecko oder Webkit für deinen Browser verwendest? Gibts kostenlose Libraries im Internet. Und auch sonst würde ich es erst mal mit einem Request versuchen.
    Danke für die Antwort.
    Requests waren mir mit den ganzen Cookies und Token bei google leider zu schwer. :/
    Die GeckoEngine habe ich schon probiert, nur konnte ich dort leider nicht den selben Syntax wie für die WebBrowser-Komponente benutzen und habe dazu leider auch keine Hilfestellung im Internet gefunden.
    Das selbe passiert bei WebKit, ich habe es gerade gedownloadet und ausprobiert.

    Leider wird die Verwendung von Gecko/WebKit wohl die einzige Möglichkeit sein mein Vorhaben zu verwirklichen. Gibt es denn irgendwo ein Tutorial wie ich Befehle wie ".InvokeMember("click")" oder ".innertext = "irgendwas"" in Gecko/WebKit umsetze oder kann mir hier jemand helfen?

    Grüße,
    leviathan2 ;)
    Kann mir hier vielleicht jemand helfen meinen WebBrowser1-Code in Gecko/WebKit umzusetzen?
    Ich bekomme es beim besten Willen nicht hin und bin leicht frustriert, dass das IE-Browser den funktionierenden Code nicht annehmen möchte.
    Ich habe mir in der Zeit vom 7.6. bis heute, den 22.6. ebenfalls HttpWebRequests angeschaut, werde aber wohl aufgrund mangelnder VB.NET Kenntnisse die Browser-Variante vorerst bevorzugen müssen.

    Code:

    VB.NET-Quellcode

    1. Private Sub WebBrowser1_DocumentCompleted_1(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
    2. If schritt = 1 Then
    3. WebBrowser1.Document.GetElementById("Email").SetAttribute("value", "mail@gmail.com")
    4. WebBrowser1.Document.GetElementById("Passwd").SetAttribute("value", "password")
    5. WebBrowser1.Document.GetElementById("signIn").InvokeMember("click")
    6. schritt = 2
    7. End If
    8. If schritt = 2 Then
    9. Dim htmldoc = WebBrowser1.Document '
    10. Dim pulledtags = htmldoc.GetElementsByTagName("span")
    11. For Each item In pulledtags
    12. If item.innertext = "Erfahrungsbericht schreiben" Then
    13. MsgBox("Found span!")
    14. item.InvokeMember("click")
    15. schritt = 3
    16. End If
    17. Next
    18. End If
    19. End Sub


    Grüße,
    leviathan2 ;)
    Vielleicht hilft das weiter: stackoverflow.com/questions/20…bkit-getelementbyid-click (so kann man anscheinend JavaScript im Browser ausführen, womit das gehen könnte.