我加载一个互联网页面并使用 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”
如何设置输入字段的值?
除了@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
,因为您似乎正在使用后期绑定。