首页 > 解决方案 > VBA Web 表单自动填充未完成“必需”标准

问题描述

我正在尝试根据从 interwebz 中提取的一些 VBA 代码填写 Web 表单 - 但是当 VBA 填写文本字段并单击提交时 - 它无法将文本字段识别为已完成 - 显示“必填*”

我要填写的网络表格是https://www.retailmenot.com/everyday/unsubscribe 我在这方面还很陌生,因此感谢您的帮助!

Sub RetailMeNot()
'RetailMeNot.com


Dim HTMLDoc As HTMLDocument
Dim oBrowser As InternetExplorer
Dim oHTML_Element As IHTMLElement
Dim sURL As String
Dim Name, Address, Apt, City, State, Zip, Email As String

Name = "Test"
Address = "123 Apple St"
Apt = ""
City = "New York"
State = "NY"
Zip = "123456"
Email = "Test@VBA.com"


'On Error GoTo Err_Clear
sURL = "https://www.retailmenot.com/everyday/unsubscribe"
Set oBrowser = New InternetExplorer
oBrowser.Silent = True
'oBrowser.timeout = 60
oBrowser.navigate sURL
oBrowser.Visible = True

Do
' Wait till the Browser is loaded
Loop Until oBrowser.readyState = READYSTATE_COMPLETE

Set HTMLDoc = oBrowser.document

HTMLDoc.getElementsByClassName("nameinputfield")(0).Value = Name
HTMLDoc.getElementsByClassName("address2inputfield").Item(0).Value = Address
HTMLDoc.getElementsByClassName("aptnuminputfield").Item(0).Value = Apt
HTMLDoc.getElementsByClassName("cityinputfield").Item(0).Value = City
HTMLDoc.getElementsByClassName("stateinputfield").Item(0).Value = State
HTMLDoc.getElementsByClassName("zipinputfield").Item(0).Value = Zip
HTMLDoc.getElementsByClassName("emailinputfield").Item(0).Value = Email
HTMLDoc.getElementsByClassName("input-checkbox").Item(0).Checked = True
HTMLDoc.getElementsByClassName("button-primary").Item(0).Click

Exit Sub


Err_Clear:
If Err <> 0 Then
Debug.Assert Err = 0
Err.Clear
Resume Next
End If
End Sub

标签: htmlexcelvbaforms

解决方案


推荐阅读