我正在使用Excel VBA尝试点击网站上的按钮,这里是使用inspect元素的网站代码:
<button class="_ah57t _84y62 _frcv2 _rmr7s">ClickHere</button>
这就是我在VBA中所做的事情:
Sub testcode()
Dim ie As InternetExplorer
Dim html As HTMLDocument
Set ie = New InternetExplorer
ie.Visible = True
ie.Navigate "somesite.com"
Do While ie.READYSTATE <> READYSTATE_COMPLETE
DoEvents
Loop
Dim e
Set e = ie.Document.getElementsByClassName("_ah57t _84y62 _frcv2 _rmr7s")
e.Click
End Sub
使用调试我发现代码似乎存储了一些名为&#34; [object]&#34;在变量e中然后给出一个运行时错误&#39;&#39;&#39;什么时候去e.click。我甚至尝试过使用.Focus,但是得到了同样的错误。有什么想法吗?
答案 0 :(得分:1)
getElementsByClassName()
函数返回的集合不是单个元素。您需要在返回的集合上指定索引才能返回单个元素。如果班级中只有一个元素,您只需使用:
ie.Document.getElementsByClassName("_ah57t _84y62 _frcv2 _rmr7s")(0).Click
(0)
指定从类返回的集合中元素的索引。
很容易判断函数是返回集合还是单个元素:
getElementBy...
- 返回单个元素。 getElementsBy...
- 返回元素集合。