访问带有span标签的按钮时遇到问题,因为它嵌套在多个标签中。这是代码的屏幕截图,其中包含我要单击的突出显示部分。 [1]:https://imgur.com/a/e7Ya412“ HTML代码”
我已经尝试过使用elementcollection获取所有spans元素,但是它仍然无法访问我需要的span元素。
Dim HTMLspans As MSHTML.IHTMLElementCollection
Set HTMLspans = HTMLDoc.getElementsByTagName("span")
For Each HTMLspan In HTMLspans
Debug.Print HTMLspan.getAttribute("id")
此代码将向我显示一些span元素,但不是全部。我还尝试使用嵌套的for循环来查看是否可以像这样访问它,但是仍然无法正常工作。
For Each HTMLtable In HTMLtables.getElementsByTagName("table")
For Each HTMLtbody In HTMLtable.getElementsByTagName("tbody")
For Each HTMLtr In HTMLtbody.getElementsByTagName("tr")
For Each HTMLtd In HTMLtr.getElementsByTagName("td")
For Each HTMLspan In HTMLtd.getElementsByTagName("span")
Debug.Print HTMLspan.getAttribute("id")
Next HTMLspan
Next HTMLtd
Next HTMLtr
Next HTMLtbody
Next HTMLtable
这返回一些span元素,但未显示我需要的那个。
使用正确的代码,我希望使用id="revit_form_ComboButton_0_label"
访问span标签
但是我无法访问它。这段代码可能会引起问题吗?
<!--Portlet-Outlined Start-->
我无法访问此代码下的任何标签,很遗憾,我使用的网站不是公开的。
答案 0 :(得分:1)
只需使用ID(除非有父iframe /框架)
ie.document.getElementById("revit_form_ComboButton_0_label")
或
ie.document.querySelector("#revit_form_ComboButton_0_label")
答案 1 :(得分:1)
这是我用来访问iframe上按钮的代码。
Dim HTMLDoc As MSHTML.HTMLDocument
Dim iframeDoc As MSHTML.HTMLDocument
Dim HTMLbutton As MSHTML.IHTMLElement
Set iframeDoc = HTMLDoc.frames("eZlmIFrame_iframe").Document
Set HTMLbutton = iframeDoc.getElementById("revit_form_ComboButton_0_label")
HTMLbutton.Click