使用Excel VBA写入HTML输入字段

jdg4fx2g  于 2022-12-01  发布在  其他
关注(0)|答案(1)|浏览(256)

我加载了一个互联网页面,并使用VBA以myusernamemypassword登录。
我想使用VBA在网页的输入字段中写入一个搜索项。
因为在输入字段中没有姓名和ID,我没有成功。
下面是我的代码:

Sub MyLogin()

Dim IE As InternetExplorer
Set IE = CreateObject("InternetExplorer.Application")
With IE
    .Visible = True
    .navigate "https://www.example.com"

    Do Until .readyState = 4
        DoEvents
    Loop

    .document.all.Item("username").Value = "myusername"
    .document.all.Item("password").Value = "mypassword"
    .document.forms(0).submit

End With

Do Until IE.readyState = 4
    DoEvents
Loop

Dim inputfield As HTMLInputElement
For Each inputfield In IE.document.getElementsByTagName("input")
    If inputfield.Type = "text" Then inputfield.Value = "mysearch"
Next

Do Until IE.readyState = 4
    DoEvents
Loop

End Sub

我要填入的HTML字段:
输入类=“输入框搜索表单控件”类型=“文本”值="”占位符=“名称,电子邮件”最大长度=“71”
如何设置输入字段的值?

eufgjt7s

eufgjt7s1#

对于@Miqi180的评论,您可以尝试将代码中以Dim inputfield As HTMLInputElement开头的部分替换为:

Dim inputfield As Object
Set inputfield = IE.document.getElementsByClassName("input-inboxsearch form-control")
If inputfield.length > 0 Then
    inputfield(0).Value = "mysearch"
End If

'carry on with your code

getElementsByClassName方法将返回一个集合,因此您必须检查它的length,然后访问该集合的项。如果该类只有一个元素,则可以引用该集合的第0个元素。
我已经将inputfield变量设置为Object,因为您似乎正在使用后期绑定。

相关问题