打开一个网页,然后点击一个特定的标签
我试图打开一个button点击的网页,去一个特定的部分,在下一个button箭头图像点击遍历多个页面。
我必须从这个网站提取信息。 页面的HTML结构是:
<div> <div> <table class="A"> <tbody> <tr> <td class="B"> <div class="C"> <ul id="D" class="E"> <li id="W" class="TU"></li> <li id="X" class="TU "></li> <li id="Y" class="TU"><span class="SPANCLASSNAME">HEADER TAB CAPTION</span></li> <li id="Z" class="TU"></li> </ul> </div> </td> </tr> </tbody> </table> </div> </div>
我需要的所有数据都可以在任何li
元素下。 这里我有第三个元素。
Private Sub Button_Click() Dim IE As Object Set IE = CreateObject("InternetExplorer.Application") IE.Visible = True IE.Navigate "URL" Do DoEvents Loop Until IE.ReadyState = 4 Set AllSpanElements = IE.Document.getElementsByClassName("SPANCLASSNAME") For Each span In AllSpanElements MsgBox span.innerText If span.innerText = "HEADER TAB CAPTION" Then MsgBox span.innerText span.Click 'DOES NOT WORK. WHAT SHOULD BE THE CODE HERE? Exit For End If Next MsgBox "Operation Completed" End Sub
我可以打开网页,MsgBox显示来自所有li
元素的文本,stream程达到操作完成但点击操作没有发生。
什么代码将点击行为发送到IE?
如果跨度有JavaScript事件附加下面的代码可能会伎俩。
span.FireEvent("click()")
我相信会的
span.onclick(); // or span.fireEvent('onclick');
(没有分号)
添加如果它不是JS附加事件,请尝试
span.click()
如果不知道URL,我无法testing,但下面是我想到的代码:
Public Sub sampleCode() Dim IE As InternetExplorer Dim HTMLDoc As HTMLDocument Dim AllSpanElements As IHTMLElementCollection Dim spanCounter As Long Dim targetSpan As HTMLObjectElement Set IE = New InternetExplorer With IE .Visible = True .Navigate "URL" Do While .Busy Or .ReadyState = READYSTATE_LOADING: Wend Set HTMLDoc = .document End With Set AllSpanElements = HTMLDoc.getElementsByTagName("li") For spanCounter = 0 To AllSpanElements.Length - 1 With AllSpanElements(spanCounter) MsgBox (.innerText) If .innerText = "HEADER TAB CAPTION" Then MsgBox (.innerText) .Click Exit For End If End With Next IE.Quit Set IE = Nothing MsgBox "Operation Completed" End Sub
希望这有助于TheSilkCode