使用VBA在IE中单击一个button
我正在使用Excel VBA来尝试点击网站上的button,这里是使用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
使用debugging,我发现代码似乎在variablese中存储了一个名为“[object]”的东西,然后在e.click中出现运行时错误“438”。 我甚至尝试使用.Focus第一,但得到相同的错误。 有任何想法吗?
getElementsByClassName()
函数不是返回一个元素的集合。 您需要在返回的集合上指定索引才能返回单个元素。 如果在课堂中只有一个元素,你可以简单地使用:
ie.Document.getElementsByClassName("_ah57t _84y62 _frcv2 _rmr7s")(0).Click
(0)
指定从类返回的集合中元素的索引。
很容易判断一个函数是否返回一个集合或单个元素:
-
getElementBy...
– 返回一个元素。 -
getElementsBy...
– 返回元素的集合。