2013-07-13 50 views
1

我正嘗試打開按鈕單擊的網頁,轉到特定的部分,在下一個按鈕箭頭圖像單擊時遍歷多個頁面。打開網頁並單擊特定選項卡

我必須從這個網站提取信息。頁面的HTML結構是:

<div> 
<div> 
    <table class="A"> 
    <tbody> 
    <tr> 
    <td class="B"> 
     <div class="C"> 
     <ul id="D" class="E"> 
     <li id="W" class="T U"></li> 
     <li id="X" class="T U "></li> 
     <li id="Y" class="T U"><span class="SPANCLASSNAME">HEADER TAB CAPTION</span></li> 
     <li id="Z" class="T U"></li> 
     </ul> 
     </div> 
    </td> 
    </tr> 
    </tbody> 
    </table> 
</div> 
</div> 

所有我需要的可能是任何li元素下的數據。在這裏,我把它放在第三個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元素的文本,流量達到,直到操作完成,但點擊動作不會發生。

什麼代碼會將點擊動作發送給IE?

回答

0

如果跨度有JavaScript事件附加下面的代碼可能會伎倆。

span.FireEvent("click()") 
+0

不需要JavaScript事件附加到DIV /表/ TR/TD/UL /跨度。 – Ninja

+0

@Ninja你能分享鏈接嗎? – Santosh

+0

我有一個替代使用鏈接,而不是跨度。這工作,現在我能夠導航到我需要的選項卡。但是,再一次,我被卡住了。這一次我必須使用vbscript修改下拉值以獲得期望的結果。我進入的標籤有許多div元素,其中一個包含一個div,它有2個下拉列表(使用div創建)。我必須修改第二個下拉列表。我能夠從列表中獲得值,但無法設置它。任何想法我應該如何前進? TIA。 – Ninja

0

我相信這將是

span.onclick(); 
// or 
span.fireEvent('onclick'); 

(沒有分號)

新增如果它不是一個JS附加事件,嘗試

span.click() 
+0

沒有JavaScript事件附加到div/table/tr/td/ul/span。 – Ninja

+0

我試過span.click哪個沒有工作&span.click()或span.click();拋出語法錯誤。 – Ninja

0

我不能在不知道URL的情況下進行測試,但下面是我提出的代碼H:

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

相關問題