提问人:Domingo SC 提问时间:4/19/2023 更新时间:4/20/2023 访问量:45
vba Excel getElementsByTagName(“a”) 有效,但 IE.Document.getElementsByClassName(“textoblanco”) 不起作用
vba Excel getElementsByTagName("a") work but IE.Document.getElementsByClassName("textoblanco") don't work
问:
我使用
Dim IE As InternetExplorerMedium
Set IE = New InternetExplorerMedium
For Each ele In IE.Document.getElementsByTagName("a")
Debug.Print ele.innerhtml
If InStr(ele.innerhtml, "Resolver") > 0 Then Debug.Print "OK": Exit For
next
For Each ele In IE.Document.getElementsByClassName("textoblanco")
Debug.Print ele.innerhtml
If InStr(ele.innerhtml, "Resolver") > 0 Then Debug.Print "OK": Exit For
next
WWEB页面是:
<a href="javascript:botonDuplicarActividad();" class="textoblanco">Duplicar </a>
<a href="javascript:botonHojaTecnica();" class="textoblanco">Hoja Tec </a>
<a href="javascript:botonResolver();" class="textoblanco">Resolver </a>
第一个“For each”工作并执行 Debug.Print “OK”,但第二个“For Each”不起作用:运行时间:438。对象不支持此属性或方法
我尝试使用Excel中的网页
答:
0赞
Tim Williams
4/20/2023
#1
在IE中没有问题,除非你有一个非常旧的版本。getElementsByClassName
这对我来说很好用:
Sub Tester()
Dim IE As InternetExplorerMedium, ele As Object
Set IE = New InternetExplorerMedium
IE.Navigate "about:blank"
IE.Document.Body.innerhtml = _
"<a href=""javascript:botonDuplicarActividad();"" class=""textoblanco"">Duplicar</a>" & _
"<a href=""javascript:botonHojaTecnica();"" class=""textoblanco"">Hoja Tec</a>" & _
"<a href=""javascript:botonResolver();"" class=""textoblanco"">Resolver</a>"
Debug.Print "By Tag Name"
For Each ele In IE.Document.getElementsByTagName("a")
Debug.Print , ele.innerhtml
If InStr(ele.innerhtml, "Resolver") > 0 Then Debug.Print , "OK": Exit For
Next
Debug.Print "By Class Name"
For Each ele In IE.Document.getElementsByClassName("textoblanco")
Debug.Print , ele.innerhtml
If InStr(ele.innerhtml, "Resolver") > 0 Then Debug.Print , "OK": Exit For
Next
End Sub
评论
0赞
Domingo SC
4/21/2023
然后,问题出在网页的其他部分。我将把所有代码都交给你的子测试人员。谢谢。
评论
IE.document.parentWindow.execScript("botonResolver()", "JavaScript")