Прежде всего:
Всегда используйте Option Explicit
в качестве первой строки в каждом модуле VBA.
Чтобы решить вашу проблему, сначала нужно вызвать события нажатия клавиш для полей ввода. После ввода значений вы можете нажать кнопку отправки.
Первая строка:
Option Explicit
Основной макрос:
Sub test()
Dim browser As Object
Dim url As String
Dim nodeUserName As Object
Dim nodePassWord As Object
Dim nodeSubmitButton As Object
Dim domDoc As Object
Dim userName As String
Dim passWord As String
userName = "Your Name"
passWord = "YourPassword"
Set browser = CreateObject("InternetExplorer.Application")
url = "https://www.synchronycredit.com/eSecurity/Login/login.action?clientId=google&accountType=plcc&langId=en"
'Initialize Internet Explorer, set visibility,
'call URL and wait until page is fully loaded
Set browser = CreateObject("internetexplorer.application")
browser.Visible = True
browser.navigate url
browser.Top = 50
browser.Left = 530
browser.Height = 400
browser.Width = 400
Do Until browser.readyState = 4: DoEvents: Loop
Set domDoc = browser.document
Set nodeUserName = domDoc.getElementByID("loginUserID")
Call TriggerEvent(domDoc, nodeUserName, "onKeypress")
nodeUserName.Value = userName
Set nodePassWord = domDoc.getElementByID("loginPassword")
Call TriggerEvent(domDoc, nodePassWord, "onKeypress")
nodePassWord.Value = passWord
Set nodeSubmitButton = domDoc.getElementByID("secLoginBtn")
nodeSubmitButton.Click
End Sub
Подпрограмма для запуска события html:
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