VBA:访问没有Id或Name的HTML元素

时间:2016-06-03 14:42:01

标签: javascript html vba excel-vba automation

在VBA中,我想知道是否可以单击此HTML按钮而不使用Id和Name属性:

<ul aria-hidden="false" role="menu">
   <li>
        <button ..></button>
   </li>
   <li>
        <button ..></button>
   </li>
   <li> <!-- THE THIRD li, I would like to access this button -->
        <button title="exporter" role="menuitem" data-ng-disabled="myfunction()">my text</button>
  </li>
</ul>

对于具有Id或名称的其他元素,我的方法如下:

Set IE = CreateObject("InternetExplorer.Application")
IE.navigate "site.com"
IE.document.getElementById("submitBtn").Click
// IE.document.getElementByName("submitBtn").Click

但在我之前的例子中没有&#34; Id&#34;或&#34;名称&#34;可用,只有按钮的标题属性,是否有可能访问此按钮?

有什么想法吗?

我尝试的另一种方式但也没有工作:

目标是单击按钮,所以我尝试直接执行&#34; myfunction()&#34;,如下所示:

IE.document.parentWindow.execScript "myfunction()", "Javascript"

btu我收到执行错误(错误80020101)..任何想法?

1 个答案:

答案 0 :(得分:1)

您是否尝试遍历元素并查看可能的方法来检索它的检测方式?

For Each element In IE.Document.all
If element.className = "exporter" Then
Set LookedElement = element 
Exit For
End If
Next

设置元素的其他有用功能

Set elems = IE.Document.getelementsbytagname("exporter")
Set elems = IE.Document.getElementsByName("exporter")

添加引用(引用 - > Microsoft Internet控件)可能更有用,这样您就可以看到IE可用的所有命令,而不是后期绑定。