Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Buttons auf Webseite per VBA klicken

Buttons auf Webseite per VBA klicken
02.02.2017 10:43:33
Mike
Hallo,
ich möchte gerne per VBA eine Webseite öffnen und dann nacheinander bestimmte Buttons auf dieser Webseite anklicken.
Da ich neu bei VBA bin, sind mir folgende Punkte noch nicht ganz klar:
1) Wie definiere ich die Variablen in diesem Fall korrekt, z.B. für IE ? Als Object ?
2) Wie kann ich dem Code sagen, dass er so lange warten soll, bis eine Internetseite vollständig geladen ist, damit die entsprechenden Buttons auch tatsächlich sichtbar sind ?
3) Wie spreche ich einen Button auf der Webseite korrekt an, wenn ich die individuelle ID des Buttons habe ?
Bisher habe ich folgenden Code:
    Dim IE
Dim strID As String ' ID des Buttons
strID = "editProfileBttn"
Set IE = GetObject("new:{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}")
IE.navigate "meineWebseite"
IE.Visible = True
Vielen Dank im Voraus für Eure Hilfe.
VG,
Mike
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Buttons auf Webseite per VBA klicken
02.02.2017 12:11:53
Zwenn
Hallo Mike,
als erstes musst Du Dich von der Vorstellung lösen, dass die Maschine den gleichen Weg nehmen muss, wie Du als Mensch vor dem Bildschirm, wenn Du auf einer Internetseite eine Unterseite aufrufen willst. Die Maschine braucht keinen Button zum anklicken. Vielmehr kann sie direkt den Link aufrufen, dem auch der Button folgt. Sofern Du diesen vorher rausfindest und ihr direkt anbietest.
Ich gehe davon aus, dass Du Dich mit dem programmtechnischen Aufbau von Internetseiten auskennst, da Du schreibst, Du kennst die ID der Buttons. Die IDs stehen ja schon an der richtigen Stelle im Quelltext der Seite, an der Du in der Regel auch den Link findest, dem der Button folgt.
Eine Einführung, wie Du generell Web-Seiten mit VBA ansprechen kannst, habe ich hier geschrieben:
https://www.herber.de/cgi-bin/callthread.pl?index=1492241#1493245
Das sollte Deine ersten Fragen beantworten.
Viele Grüße,
Zwenn
Anzeige
AW: Buttons auf Webseite per VBA klicken
02.02.2017 12:28:44
Mike
Hallo Zwenn,
vielen Dank für die ausführliche Antwort.
Ich kenne mich mit Website-Programmierung etwas aus. Allerdings finde ich zu diesem Button im Quellcode keinen Link. Ich vermute, er hat ein OnClick-JS Event, allerdings nicht inline im Button-Code.
Geht .Click in diesem Fall in VBA denn gar nicht irgendwie ?
VG,
Mike
Anzeige
AW: Buttons auf Webseite per VBA klicken
02.02.2017 12:48:26
Zwenn
Mit Sendkeys oder sonstigen Methoden, Elemente zu bedienen, als sei das Programm ein Mensch, kenne ich mich ehrlich gesagt nicht aus. Ich halte diese Art der Steuerung nicht für optimal und habe mich deshalb nicht wirklich damit beschäftigt. Das ist natürlich ein Vorurteil und wenn jemand anders Dir eine entsprechende Lösung anbietet, die für Dich klappt, benutz sie einfach.
Um welche Seite handelt es sich denn? Ohne Link kann ich an der Stelle keine weitere Hilfe anbieten.
Anzeige
AW: Buttons auf Webseite per VBA klicken
02.02.2017 12:57:34
Mike
Hallo Zwenn,
Sendkeys gefällt mir persönlich auch nicht, ich dachte aber in VBA gibt es auch ein .Click event, das ich hier verwenden könnte.
Auf die betreffende Webseite kommst Du leider nicht drauf.
Ich lasse die Frage mal offen - vielleicht findet sich hier ja noch eine Lösung.
Trotzdem vielen Dank ! :)
VG,
Mike
Anzeige
AW: Buttons auf Webseite per VBA klicken
02.02.2017 13:05:01
Zwenn
Hmm,
das ist natürlich Pech. Je nachdem, wie fit Du in Sachen IT bist, kannst Du mit Wireshark auch den Netzwerkverkehr mitschneiden und dann den Button auf der Seite anklicken. In Wireshark kannst Du dann sehen, welche URL weggeschickt wurde, um die Unterseite hinter dem Button aufzurufen. Wie Wirechark funktioniert, kann ich Dir hier allerdings nicht auf die Schnelle erklären :-/
Dann wünsche ich Dir noch viel Glück mit Deinem Vorhaben :-)
Viele Grüße,
Zwenn
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Buttons auf Webseite per VBA klicken


Schritt-für-Schritt-Anleitung

Um Buttons auf einer Webseite per VBA anzuklicken, folge diesen Schritten:

  1. Variablen definieren: Du musst die Variablen für Internet Explorer (IE) definieren. Setze die Variable als Object:

    Dim IE As Object
  2. Internetseite öffnen: Navigiere zur gewünschten Webseite:

    Set IE = CreateObject("InternetExplorer.Application")
    IE.Visible = True
    IE.navigate "meineWebseite"
  3. Warten bis die Seite geladen ist: Füge eine Schleife ein, um sicherzustellen, dass die Seite vollständig geladen ist:

    Do While IE.Busy Or IE.ReadyState <> 4
       DoEvents
    Loop
  4. Button anklicken: Wenn du die ID des Buttons kennst, kannst du diesen direkt ansprechen:

    IE.document.getElementById("editProfileBttn").Click

Häufige Fehler und Lösungen

  1. Fehler beim Ansprechen des Buttons: Stelle sicher, dass die ID korrekt ist und dass der Button tatsächlich in dem geladenen HTML-Dokument vorhanden ist. Überprüfe den Quelltext der Seite.

  2. Seite lädt nicht vollständig: Wenn die Schleife nicht funktioniert, könnte es an einer langsamen Internetverbindung liegen. Erhöhe die Wartezeit oder prüfe, ob die Seite wirklich reagiert.


Alternative Methoden

Falls das Klicken auf die Buttons nicht funktioniert, kannst du auch versuchen, die URL direkt anzusprechen, die der Button aktiviert. Dies ist oft effizienter und benötigt weniger Code:

IE.navigate "direkte_URL_des_Buttons"

Alternativ kannst du auch Tools wie Wireshark nutzen, um herauszufinden, welche Anfragen im Hintergrund gesendet werden, wenn der Button geklickt wird.


Praktische Beispiele

Hier ist ein komplettes Beispiel, das alle Schritte zusammenfasst:

Sub ClickButtonOnWebpage()
    Dim IE As Object
    Set IE = CreateObject("InternetExplorer.Application")
    IE.Visible = True
    IE.navigate "meineWebseite"

    ' Warten bis die Seite geladen ist
    Do While IE.Busy Or IE.ReadyState <> 4
        DoEvents
    Loop

    ' Button anklicken
    IE.document.getElementById("editProfileBttn").Click
End Sub

Tipps für Profis

  • Debugging: Verwende Debug.Print in Deinem Code, um Variablenwerte während der Ausführung zu prüfen.
  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um unerwartete Probleme zu vermeiden:
    On Error Resume Next
    ' Dein Code hier
    On Error GoTo 0
  • Dokumentation: Halte deine VBA-Projekte gut dokumentiert, um zukünftige Anpassungen zu erleichtern.

FAQ: Häufige Fragen

1. Kann ich auch andere Browser verwenden? Ja, aber die meisten VBA-Skripte sind speziell für Internet Explorer ausgelegt. Für andere Browser benötigst du möglicherweise zusätzliche Bibliotheken.

2. Was ist, wenn die ID des Buttons nicht im Quelltext sichtbar ist? Prüfe, ob der Button ein OnClick-Event hat, das möglicherweise in JavaScript definiert ist. In diesem Fall kannst du versuchen, die URL des Events direkt zu verwenden.

3. Wie kann ich mehrere Buttons nacheinander anklicken? Du kannst die oben genannten Schritte in einer Schleife oder hintereinander in deinem VBA-Code einfügen, um mehrere Buttons nacheinander zu aktivieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige