如何使用vba选择li标签?

如何使用vba选择li标签?,vba,web-scraping,dropdown,Vba,Web Scraping,Dropdown,我在vba代码方面遇到了一些问题。我想把公司内部网站上的一些数据输入excel表格。我已经实现了通过不同的网站更改日期和运行下一步的一些,最后我想从网站提取数据到一些电子表格 但这让我崩溃了:我想在下拉字段(li)中选择一个特定的值(这里是“B”)并更新站点 以下是intranet站点的一部分: <div class="dropdown btn-group"> <button class="btn btn-default dropdown-toggle" type="butto

我在vba代码方面遇到了一些问题。我想把公司内部网站上的一些数据输入excel表格。我已经实现了通过不同的网站更改日期和运行下一步的一些,最后我想从网站提取数据到一些电子表格

但这让我崩溃了:我想在下拉字段(li)中选择一个特定的值(这里是“B”)并更新站点

以下是intranet站点的一部分:

<div class="dropdown btn-group">
<button class="btn btn-default dropdown-toggle" type="button" data-toggle="dropdown" aria-expanded="false">
<span class="dropdown-text">B</span>
<span class="caret"></span>
</button><ul class="dropdown-menu" role="menu">
<li class="" aria-selected="false">
<a data-action="A" class="dropdown-item dropdown-item-button">A</a>
</li>
<li aria-selected="true" class="active">
<a data-action="B" class="dropdown-item dropdown-item-button">B</a>
</li>
<li aria-selected="false" class="">
<a data-action="C" class="dropdown-item dropdown-item-button">C</a>
</li>
<li aria-selected="false" class="">
<a data-action="-1" class="dropdown-item dropdown-item-button">All</a>
</li>
</ul>
</div>

B
  • A.
  • B
  • C
  • 全部的
这是一个简短的vba脚本,没有其他循环和数据内容。有了它,我可以读出下拉列表中的值——但我如何才能选择一个(即“B”)并更新页面

Sub GetData()
 Dim IE As New InternetExplorer, html As HTMLDocument
 Dim elem As Object, data As String

 With IE
  .Visible = True
  .navigate "site from intranet"
  Do While .readyState <> READYSTATE_COMPLETE: Loop
  Set html = .document
 End With
 data = ""
 For Each elem In html.getElementsByClassName("dropdown-menu")(0).getElementsByTagName("li")
 data = data & " " & elem.innerText
 Next elem
 Range("A1").Value = data
 IE.Quit
End Sub
Sub-GetData()
Dim IE作为新的InternetExplorer,html作为HTMLDocument
尺寸元素作为对象,数据作为字符串
与IE
.Visible=True
.浏览“内联网中的站点”
执行While.readyState readyState\u完成:循环
设置html=.document
以
data=“”
对于html.getElementsByCassName(“下拉菜单”)(0.getElementsByTagName(“li”)中的每个元素
数据=数据&“&elem.innerText
下一个要素
范围(“A1”)。值=数据
即退出
端接头

由于它来自我们的内部网,我无法发布全部代码,希望您能给我一些建议。

您可以尝试使用attribute=value css选择器

ie.document.querySelector("[data-action=B]").click
我在看到锚元素时使用单击

您可能需要在父li上设置属性“class”,“active”;和/或setAttribute“aria selected”,True