1

ボタンのクリックで Web ページを開こうとしています。特定のセクションに移動し、次のボタンの矢印の画像をクリックすると複数のページを横断します。

このウェブサイトから情報を抽出する必要があります。ページの 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要素の下にある可能性があります。ここでは、3 番目の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

Web ページを開くことができ、MsgBox はすべてのli要素からのテキストを表示し、フローは Operation Completed まで到達しますが、クリック アクションは発生しません。

クリック アクションを IE に送信するコードはどれですか?

4

3 に答える 3

0

スパンに JavaScript イベントが添付されている場合、以下のコードでうまくいく可能性があります。

 span.FireEvent("click()")
于 2013-07-13T19:25:42.950 に答える
0

私はそうなると信じています

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

(セミコロンなし)

追加JS付属イベントでない場合は試してみてください

span.click()
于 2013-07-13T20:13:07.947 に答える