Microsoft Excel

Herbers Excel/VBA-Archiv

Webseite per VBA ausfüllen ohne Feldname

Betrifft: Webseite per VBA ausfüllen ohne Feldname von: Wolfgang Stecher
Geschrieben am: 09.03.2016 10:02:15

Guten Morgen,

mir ist bewusst, dass es das Thema Webseite ausfüllen per VBA schon des öfteren gegeben hat, ich finde dennoch keinerlei Lösung für mein derzeitiges Problem.
Mit folgendem Code kann ich ja problemlos die beiden Felder "sap-user" und "sap-password" ausfüllen und mich somit anmelden:


Set oIE = CreateObject("InternetExplorer.Application")

With oIE

.Visible = True
.Navigate2 sURL

With .Document.forms(0)
.elements("sap-user").Value = sUser
.elements("sap-password").Value = sPass
.Document.forms(0).submit
End With

End With


Für die Zeilen .elements(NAME).Value läßt sich der Name der Felder im IE 11 recht problemlos auslesen, in dem man in der Menüleiste Ansicht - Quelle auswählt und im Quelltext nach "input id" oder "input name" sucht.

Alternativ geht auch (aber bei unseren SAP-Seiten zum Beispiel nicht, da das Kontextmenü deaktiviert wurde) die Möglichkeit, nach Aufruf der Seite im IE die Taste F12 zu drücken und anschließend mit der rechten Maustaste in das gewünschte Feld klicken und im Kontextmenü "Element untersuchen" auswählen.
Die Zeile im Quelltext, die das Input-Feld beinhaltet, wird dann farblich hinterlegt.

Nach der Anmeldung werden aber alle Felder nur noch über JaveScripte in Forms / Iframes geladen und ich habe scheinbar keine Chance mehr, an die Feldnamen oder Feld-IDs der Inputfelder zu kommen.
Die JaveScripte habe ich mir auch gezogen und untersucht, doch darüber habe ich auch keine Feldnamen oder IDs ermittelt bekommen. Allerdings werden in den JavaScriten erneut andere JavaScripte geladen und da hatte ich keinerlei Chance mehr dran zu kommen.

Nun wäre meine Frage, habe ich eine Möglichkeit, auch ohne Ermittlung der Feldnamen oder Feld-ID die Felder dennoch zu befüllen, á la Inputfeld(0).Value = Wert1 ?

Danke für Eure Ideen und Vorschläge.

  

Betrifft: Webseite per VBA ausfüllen ohne Feldname von: Anton
Geschrieben am: 09.03.2016 15:46:12

Hallo Wolfgang,

man könnte vielleicht so die Feldnamen oder Feld-IDs der Felder ermitteln:

Sub b()
  Dim IEApp As Object, alls As Object
  Set IEApp = CreateObject("InternetExplorer.Application")
  IEApp.Visible = True
IEApp.Navigate "https://www.herber.de/forum/messages/1480836.html"'anpassen
  Do: Loop Until IEApp.Busy = False
  Do: Loop Until IEApp.Busy = False
  Do: Loop Until IEApp.Document.ReadyState = "complete"
  For Each alls In IEApp.Document.all
    If alls.nodename = "INPUT" Then
      Debug.Print alls.outerhtml
    End If
  Next
  IEApp.Quit
  Set IEApp = Nothing
End Sub
mfg Anton


 

Beiträge aus den Excel-Beispielen zum Thema "Webseite per VBA ausfüllen ohne Feldname"