【问题标题】:VBA: Click option on dropdown list from websiteVBA:单击网站下拉列表中的选项
【发布时间】:2017-07-29 16:01:12
【问题描述】:

对不起,如果它可能很简单,我是新手,但我研究了很多,但没有找到如何在下拉列表中单击此选项(XBT/USD): https://ibb.co/jqf7zk

我只设法用下面的代码显示列表,但我不知道如何选择 XBT/USD,因为它在 html 源上没有 ID。

Option Explicit
Sub BrowseToSite()

Dim IE As New SHDocVw.InternetExplorer
Dim oSelect As HTMLInputButtonElement
IE.Visible = True

IE.Navigate "https://www.kraken.com/charts"

Do While IE.ReadyState <> READYSTATE_COMPLETE
Loop

IE.Document.getElementById("pairselect-button").Click

End Sub

根据检查元素的HTML代码:

< a tabindex="-1" class="currpairs" data-pair-text="XBT/USD" data-pair="XBTUSD">XBT/USD</a >

提前感谢您的宝贵回复。

【问题讨论】:

  • 在我的手机上,所以我不能很好地摆弄这个网站。有一个 getelementsbyclassname 方法可用于返回具有类名的元素集合,您应该能够遍历这些元素并读取内部 HTML,直到找到要单击的元素。

标签: html vba internet-explorer


【解决方案1】:

你快到了。您已找到下拉菜单。您只需点击XBT/USD。我想到的最简单的方法是使用getElementsByClassName,但您不必一定要使用它。您也可以使用 xpath 或标记名找到它们。

好吧,如果您检查源代码,您会发现有很多 class="currpairs"。如果将鼠标悬停在它们上,您将看到它们属于下拉列表中的每个项目。 XBT/USD 是列表中的第二项。所以你的代码中缺少的部分是:

IE.Document.getElementsByClassName("currpairs")(1).Click

请注意,我们在获得 currpairs 类后使用了 (1)。这是因为计数从列表中的 0 开始。所以(0)代表列表中的第一项XBT/EUR,(1)代表列表中的第二项XBT/USD

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-24
    • 1970-01-01
    • 2017-05-10
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-19
    相关资源
    最近更新 更多