2017-09-23 64 views
0

我有我想请单击下面的HTML代码:我可以点击VBA中的div吗?

<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> 

我现在想点击列表项D.我在几个不同的方法都试过了,但我不知道如果我实际上可以点击一个div。

我想这第一:

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

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

由于没有工作,我尝试这样做:

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


       x.parentElement.Click 
      Exit For 

     End If 
    Next 

我发现,我无法使用.title伪,.InnerText,或.innerHTML。有谁知道一种方法,我可以点击或选择列表项,如果它是一个div?我不相信我正在进入IF语句,这意味着.click永远不会执行。

+0

执行“点击”行吗?你需要做一些调试,并在这里给我们更多的信息。 –

+0

@TimWilliams点击行会执行,但由于某些原因,它实际上并不工作。 – jameslennberg

+0

您是否可以使用鼠标直接在页面上单击“D”,或者您是否必须首先单击其他内容?如果没有其他页面的背景,很难提出任何建议 –

回答

0

您可以在VBA做到这一点在fireEvent

tagx.FireEvent "onclick" 

这是触发VBA事件的方式。

编辑:并确定您可以使用innerHTMLinnerText。返回的元素实现IHTMLElement接口。你可以看看documentation支持哪些属性。