网站上的搜索按钮不会单击VBA

时间:2015-01-07 16:06:09

标签: html vba click

我正在尝试将数据插入搜索字段,然后单击搜索按钮。我尝试了getElementsByid("SiteSearchForm_SearchBtn")(0).ClickgetElementsByclassname("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

1 个答案:

答案 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命名可能会在未来变成你的代码崩溃吗?