网站上的搜索按钮不会点击 VBA
Search button on website won't click VBA
我正在尝试将数据插入搜索字段,然后单击搜索按钮。我尝试了 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
如果没有URL,我会说这行代码无法运行的原因:
IE.Document.getElementsByid("SiteSearchForm_SearchBtn")(0).submit
是双折的。
1) 是 getElementById
,不是 Elements
;
2) 函数 returns 单个元素,因此您不需要使用 (0)
访问集合
如果您确定自己的 ID,请尝试:
IE.Document.getElementByid("SiteSearchForm_SearchBtn").Click
...否则请向我们提供 URL 以便我们进行故障排除。
编辑
根据您提供的 HTML 行,您无法通过 class 名称获取元素,因为您获取的元素是 <div>
元素,不支持点击事件。
实际上,默认情况下 div 没有 属性 cursor:pointer
,因为它被认为是 "container"。 link,即 <a>
,默认情况下是一个可点击的元素,它将您重定向到 href
地址(您想要去的地方)。
至于设置搜索字段值的那一行,相反,似乎还可以。但是您确定您不能通过唯一的 属性(例如 id
)来避免更改网站的 CSS 命名可能会导致您的代码在未来?
我正在尝试将数据插入搜索字段,然后单击搜索按钮。我尝试了 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
如果没有URL,我会说这行代码无法运行的原因:
IE.Document.getElementsByid("SiteSearchForm_SearchBtn")(0).submit
是双折的。
1) 是 getElementById
,不是 Elements
;
2) 函数 returns 单个元素,因此您不需要使用 (0)
如果您确定自己的 ID,请尝试:
IE.Document.getElementByid("SiteSearchForm_SearchBtn").Click
...否则请向我们提供 URL 以便我们进行故障排除。
编辑
根据您提供的 HTML 行,您无法通过 class 名称获取元素,因为您获取的元素是 <div>
元素,不支持点击事件。
实际上,默认情况下 div 没有 属性 cursor:pointer
,因为它被认为是 "container"。 link,即 <a>
,默认情况下是一个可点击的元素,它将您重定向到 href
地址(您想要去的地方)。
至于设置搜索字段值的那一行,相反,似乎还可以。但是您确定您不能通过唯一的 属性(例如 id
)来避免更改网站的 CSS 命名可能会导致您的代码在未来?