使用 Excel VBA 在 HTML 输入字段中写入

问题描述 投票:0回答:1

我加载一个互联网页面并使用 VBA 使用

myusername
mypassword
登录。

我想使用 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”

如何设置输入字段的值?

excel vba web getelementsbytagname input-field
1个回答
0
投票

除了@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
,因为您似乎正在使用后期绑定。

© www.soinside.com 2019 - 2024. All rights reserved.