AW: Internetseite mit Anmeldung öffnen
24.04.2020 14:12:39
Zwenn
Hallo Harald,
ich habe für die beiden Eingabefelder jetzt eingebaut, dass das Keypress Event ausgelöst wird, bevor die Eingaben stattfinden. Probiere das mal aus. Wenn das nicht klappt, dann weiß ich nicht warum nicht, denn der Button selbst hat kein Event und die Eingabefelder haben jeweils nur das Keypress Event.
Bei meinen Versuchen wird im IE einfach das Feld für das Passwort wieder geleert und es kommt auch kein Hinweistext, dass die Eingegeben Daten falsch sind. Wie gesagt, probiere es mal aus:
Das um das Auslösen der Keypress-Events erweiterte Makro:
Sub UnionInvestEinloggen()
Dim browser As Object
Dim url As String
Dim knotenBenutzername As Object
Dim knotenPasswort As Object
Dim knotenSubmit As Object
Dim benutzerName As String
Dim passWort As String
benutzerName = "DeinBenutzername"
passWort = "DeinPasswort"
url = "https://www.union-investment.de/process?action=showLogin"
'Internet Explorer initialisieren, Sichtbarkeit festlegen,
'URL aufrufen und warten bis Seite vollständig geladen wurde
Set browser = CreateObject("internetexplorer.application")
browser.Visible = True
browser.navigate url
Do Until browser.readyState = 4: DoEvents: Loop
'Eingabefeld für den Benutzernamen selektieren
On Error Resume Next
Set knotenBenutzername = browser.document.getElementByID("user")
On Error GoTo 0
'Prüfen, ob das Feld selektiert werden konnte
If Not knotenBenutzername Is Nothing Then
'Wenn ja, keypress Event auslösen und den Benutzernamen eintragen
Call TriggerEvent(browser.document, knotenBenutzername, "onkeypress")
knotenBenutzername.Value = benutzerName
Else
'Wenn nicht, Hinweis ausgeben und Makro beenden
MsgBox "Eingabefeld für den Benutzernamen wurde nicht gefunden"
Exit Sub
End If
'Eingabefeld für das Passwort selektieren
On Error Resume Next
Set knotenPasswort = browser.document.getElementByID("pin")
On Error GoTo 0
'Prüfen, ob das Feld selektiert werden konnte
If Not knotenPasswort Is Nothing Then
'Wenn ja, keypress Event auslösen und das Passwort eintragen
Call TriggerEvent(browser.document, knotenPasswort, "onkeypress")
knotenPasswort.Value = passWort
Else
'Wenn nicht, Hinweis ausgeben und Makro beenden
MsgBox "Eingabefeld für das Passwort wurde nicht gefunden"
Exit Sub
End If
'Submit-Button selektieren
Set knotenSubmit = browser.document.getElementsByClassName("button-right")(0)
'Prüfen, ob der Submit-Button selektiert werden konnte
If Not knotenSubmit Is Nothing Then
knotenSubmit.Click
Else
'Wenn nicht, Hinweis ausgeben und Makro beenden
MsgBox "Der Submit-Button wurde nicht gefunden"
Exit Sub
End If
End Sub
Die folgende Sub löst ein übergebenes HTML-Event aus:
Private Sub TriggerEvent _
(htmlDocument As Object, htmlElementWithEvent As Object, eventType As String)
Dim theEvent As Object
htmlElementWithEvent.Focus
Set theEvent = htmlDocument.createEvent("HTMLEvents")
theEvent.initEvent eventType, True, False
htmlElementWithEvent.dispatchEvent theEvent
End Sub
Viele Grüße,
Zwenn