2017-09-23 3 views
0

je le code HTML suivant que je suis en train de cliquer sur:Puis-je cliquer sur un div dans VBA?

<div class="ListItems" style="top: 0px;"> 
    <div class="sf-element-list-box-item sfpc-selected" style="top: 0px; 
    height: 15px; line-height: 15px; width: 192px;" title="(All) 7 values"> 
    (All) 7 values</div> 
    <div class="sf-element-list-box-item" style="top: 15px; height: 15px; 
    line-height: 15px; width: 192px;" title="A">A</div> 
    <div class="sf-element-list-box-item" style="top: 30px; height: 15px; 
    line-height: 15px; width: 192px;" title="C">C</div> 
    <div class="sf-element-list-box-item" style="top: 45px; height: 15px; 
    line-height: 15px; width: 192px;" title="D">D</div> 

J'essaie maintenant de cliquer sur l'élément de la liste D. J'ai essayé de plusieurs façons différentes, mais je ne suis pas sûr si je suis effectivement en mesure de cliquer sur un div.

J'ai essayé cette première:

Set tags = IE.Document.getElementsByTagName("div") 

    For Each tagx In tags 
     If tagx.innerHTML = "D" Then 
      tagx.Click 
     End If 
    Next 

Depuis cela ne fonctionne pas, j'essayé ceci:

For Each x In IE.Document.getElementsByTagName("div") 
      If x.Title = "D" Then 


       x.parentElement.Click 
      Exit For 

     End If 
    Next 

J'ai trouvé que je ne peux pas utiliser .title, .InnerText ou .innerHTML. Est-ce que quelqu'un sait d'une façon que je serais capable de cliquer ou de sélectionner l'élément de la liste si c'est un div? Je ne crois pas que j'entre dans la déclaration IF, ce qui signifie que le .click ne s'exécute jamais.

+0

L'une ou l'autre des lignes "clic" est-elle exécutée? Vous devez faire un peu de débogage et nous donner un peu plus d'informations ici. –

+0

@TimWilliams Les lignes de clic s'exécutent, mais pour une raison quelconque, cela ne fonctionne pas réellement. – jameslennberg

+0

Pouvez-vous cliquer sur le "D" directement sur la page en utilisant la souris, ou devez-vous d'abord cliquer sur autre chose? Il est difficile de faire des suggestions sans le contexte du reste de la page –

Répondre

0

Vous pouvez le faire sur le fireEvent en vba:

tagx.FireEvent "onclick" 

c'est le moyen de déclencher un événement dans ABV.

EDIT: Et bien sûr, vous pouvez utiliser innerHTML et innerText. Les elemnts retournés implémente l'interface IHTMLElement. Vous pouvez jeter un oeil à la documentation dont les propriétés sont supportées.