我正在尝试点击链接,但它与我制作的其他链接不同。我没有一个名为" id"什么的。
这是HTML。我需要点击" pibmunic super"按钮/链接。 FIREPATH XPath显示 .//* [@ id =' informacoes_estatisticas'] / ul / li [20] / span
<div id="informacoes_estatisticas">
<h3 class="titulo">Informações Estatísticas</h3>
<ul class="links">
<li class="item Censo Agropecuário_2006">
<li class="censo2010 super">
<li class="educa super">
<li class="empresas super">
<li class="vida super">
<li class="item Estimativa da População 2014_">
<li class="prodext2013 super">
<li class="financas super">
<li class="frota super">
<li class="item Fundações Privadas e Associações sem Fins Lucrativos no Brasil 2010_">
<li class="item Índice de Desenvolvimento Humano Municipal - IDHM_">
<li class="instfin super">
<li class="item Mapa de Pobreza e Desigualdade - Municípios Brasileiros_2003">
<li class="morbid super">
<li class="prodpec2013 super">
<li class="item Pesquisa Nacional de Saneamento Básico_2008">
<li class="item Produção Agrícola Municipal - Cereais, Leguminosas e Oleaginosas_2007">
<li class="lavperm2013 super">
<li class="lavtemp2013 super">
<li class="pibmunic super">
<span class="super">Produto Interno Bruto dos Municípios</span>
<ul class="pibmunic sub">
</li>
<li class="partpol super">
<li class="assismed super">
<li class="snig_censo2010 super">
</ul>
</div>
我正在尝试将代码编写为类似
的代码Set m = html.getElementById("something")
Set a = m.getElementsByTagName("something")(something)
a.Click
我不确定这是对的,我尝试了很多组合但它不起作用。我不确切地知道&#34; getelementsby&#34;我应该使用或在内部()中给出命令。
希望你能帮助我!!感谢
答案 0 :(得分:0)
您的所有课程似乎都是独一无二的。如果是这种情况,您应该将所有class
属性更改为id
属性,例如:
class="something"
到
id="something"
一旦你这样做getElementById("something")
就行了。 getElementsByTagName()
返回带有特定标记的元素数组。例如:
getElementsByTagName("li")
检索节点下的所有li
元素。
如果最新的VBA支持querySelectorAll()
,则允许您使用CSS选择器查找元素。例如:
querySelectorAll(".something")
这将找到类something
的所有元素。但是,由于可以有多个具有相同类的元素,因此您将获得数组。您可以遍历这些元素来处理它们,缩小选择器,或者获取返回数组的第一个索引。
如果VBA仍然不支持querySeletorAll()
,您需要将getElementsByTagName()
与匹配标记上的循环结合起来,以查找具有something
类的元素。例如:
For Each el in getElementById("container").getElementsByTagName("li")
For Each cl in el.className.Split(' ')
If cl = "something" Then
el.onclick()
End If
Next
Next
如果可能使用JavaScript或jQuery,我建议您分配ID或。他们更专注于处理这些任务(更多抽象)。 jQuery就像这样简单:
$(".something").trigger("click");