我正在尝试使用网络自动化输入值。我可以在屏幕截图中使用HTML输入值吗?
Set objinputs = objIE.document.getElementsByTagName("input")
For Each ele In objinputs
If ele.Class Like "css-9hvios-Input-textInputBaseClass e1tcuc7s0" Then
ele.Value = ws.Range("A1").Value
End If
Next
这是HTML的片段 enter image description here
答案 0 :(得分:0)
您的代码:
您想要className
而不是class
。您可以使用Like
,但是成功之后可能想要Exit For
。
For Each ele In objinputs
If ele.ClassName Like "css-9hvios-Input-textInputBaseClass e1tcuc7s0" Then
ele.Value = ws.Range("A1").Value
Exit For
End If
Next
替代:
假设您想将第一个input
元素与该类名称进行匹配,如果您使用CSS class selector,则效率更高,更快捷:
objIE.querySelector("input.css-9hvios-Input-textInputBaseClass.e1tcuc7s0").value = ws.Range("A1").Value
无需循环。点“。”是类选择器,后跟类名称。
精炼:
您可以通过删除开头的tag/type selector(input
)来缩短
objIE.querySelector(".css-9hvios-Input-textInputBaseClass.e1tcuc7s0").value =ws.Range("A1").Value
您可以通过删除一个复合类名来进一步缩短(原始类名中的空格表示存在多个类。在css中,然后通过用点代替空格来加入类。
objIE.querySelector(".css-9hvios-Input-textInputBaseClass").value =ws.Range("A1").Value
但是类名称看起来很动态,因此您可能需要位置匹配。