无法根据属性结果点击网页

时间:2019-07-24 05:26:50

标签: excel vba

我正在尝试浏览“ https://www.ford.co.uk/shop/price-and-locate/build-and-price-gf3#/catalogID/WAEGB-CE1-2015-B479FiestaCarGBR201950/?code=”。我必须在型号列表中选择Titanium。但是我无法选择它。每次型号列表都会根据链接而变化。

下面是我尝试过的代码。

Sub testcode()

Dim ie As New SHDocVw.InternetExplorer
Dim htmldoc As MSHTML.HTMLDocument
Dim HTMLAs As MSHTML.IHTMLElementCollection
Dim HTMLA As MSHTML.IHTMLElement


ie.Visible = True
ie.navigate "https://www.ford.co.uk/shop/price-and-locate/build-and-price-gf3#/catalogID/WAEGB-CE1-2015-B479FiestaCarGBR201950/?code="
Do While ie.readyState <> READYSTATE_COMPLETE
DoEvents
Loop

Application.Wait (Now + TimeValue("0:00:03"))

Set htmldoc = ie.document
Set HTMLAs = htmldoc.getElementsByClassName("features-list-item feature-box")

    For Each HTMLA In HTMLAs
        Debug.Print HTMLA.getAttribute("id"), HTMLA.getAttribute("tabindex")
        If HTMLA.getAttribute("id") = "feature-1" And HTMLA.getAttribute("tabindex") = 0 Then
            HTMLA.Click
        End If
    Next HTMLA
Set HTMLAs = Nothing
Set HTMLA = Nothing


End Sub

结果应该是网页加载并选择了钛系列。请帮助我实现这一目标。

1 个答案:

答案 0 :(得分:0)

HTMLA本身似乎没有单击处理程序,但是您可以单击其子元素之一。

尝试一下:

If HTMLA.getAttribute("id") = "feature-1" And HTMLA.getAttribute("tabindex") = 0 Then
    HTMLA.getElementsByTagName("img")(0).Click
    Exit For
End If