我正在尝试将数据插入搜索字段,然后单击搜索按钮。我尝试了getElementsByid("SiteSearchForm_SearchBtn")(0).Click
和getElementsByclassname("searchBtn")(0).Click
。
HTML :
<div class="searchBtn"><a href="#search" id="SiteSearchForm_SearchBtn">Search</a></div>
VBA代码:
With IE
.Visible = True
.Navigate URL_1
Do Until .ReadyState = 4
DoEvents
Loop
Application.Wait (Now + TimeValue("0:00:02"))
IE.Document.getelementsbyclassname("hint hint-search")(0).Value = "Eliroyal2$"
IE.Document.getElementsByid("SiteSearchForm_SearchBtn")(0).submit
Application.Wait (Now + TimeValue("0:00:10"))
End With
答案 0 :(得分:0)
如果没有URL,我会说这行代码无法工作的原因:
IE.Document.getElementsByid("SiteSearchForm_SearchBtn")(0).submit
是双折的。
1)它是getElementById
,而不是Elements
;
2)该函数返回单个元素,因此您无需访问(0)
如果您确定自己的ID,请尝试:
IE.Document.getElementByid("SiteSearchForm_SearchBtn").Click
...否则请向我们提供我们进行故障排除的网址。
修改强>
根据您提供的HTML行,您无法仅通过类名获取元素,因为您获得的元素是<div>
元素,它不支持Click事件。
实际上,默认情况下,div没有属性cursor:pointer
,因为它被认为是&#34;容器&#34;。默认情况下,该链接(即<a>
)是一个可点击元素,可将您重定向到href
地址(您要去的地方)。
对于设置搜索字段值的行,相反,似乎没问题。但是你确定你不能通过一个独特的属性(例如id
)去避免改变网站的CSS命名可能会在未来变成你的代码崩溃吗?