使用 VBA 在 IE 中单击按钮

Clicking a button in IE using VBA

我正在使用 Excel VBA 来尝试点击网站上的按钮,这里是使用检查元素的网站代码:

<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

使用调试,我发现代码似乎在变量 e 中存储了一个名为“[object]”的东西,然后在到达 e.click 时给出运行时错误“438”。我什至尝试过先使用 .Focus,但得到了同样的错误。有什么想法吗?

getElementsByClassName() 函数 return 是一个集合,而不是单个元素。您需要在 returned 集合上指定一个索引,以便 return 单个元素。如果 class 中只有一个元素,您可以简单地使用:

ie.Document.getElementsByClassName("_ah57t _84y62 _frcv2 _rmr7s")(0).Click

(0) 指定集合 return 中元素在 class 中的索引。

判断函数 return 是集合还是单个元素很容易:

  • getElementBy... - Returns 单个元素。
  • getElementsBy... - Returns 元素集合。