VBA单击IE中的元素

时间:2019-04-02 20:00:32

标签: excel vba internet-explorer web-scraping

我无法单击屏幕中的某个元素,它不是按钮,而是像按钮一样工作。我已经通过Web检查器成功找到了它(我认为),但是我无法弄清为什么它不起作用的原因...以前在我的代码中,我使用相同的代码单击“登录”按钮,然后它工作得很好。这是代码:

    Set objCollection = IE.document.getelementsbytagname("div")
    For Each elem In objCollection
        If IsObject(IE.document.getElementsByClassName("btn-group")) Then 'Scratchpad button clicking
            If IsObject(IE.document.getElementsByClassName("pull-left fang-button fang-button-subtle no-margin ng-binding")) Then
                Debug.Print "found it"
                elem.Click
                Exit For
            End If
        End If
    Next elem

我试图点击页面顶部的“ Scratchpad”元素,as the image shows.谢谢!

HTML:

<div class="btn-group" role="group" style="border:1px solid #ccc"> <a ng-class="{'active': !CrossSegmentConfig.showScratchPad &amp;&amp; !CrossSegmentConfig.showGraph}" class="pull-left fang-button fang-button-subtle no-margin ng-binding active" ng-click="CrossSegmentConfig.showScratchPad=false; CrossSegmentConfig.showGraph=false;" style=""> <i class="fa fa-align-left"></i> Parameters </a> <a ng-class="{'active': CrossSegmentConfig.showScratchPad}" class="pull-left fang-button fang-button-subtle no-margin ng-binding" ng-click="CrossSegmentConfig.toggleScratchPad()" style=""> <i class="fa fa fa-columns"></i> Scratchpad </a> <a ng-class="{'active': CrossSegmentConfig.showGraph}" class="pull-left fang-button fang-button-subtle no-margin ng-binding" ng-click="CrossSegmentConfig.toggleGraph()"> <i class="fa fa-line-chart"></i> Plot </a> </div>

1 个答案:

答案 0 :(得分:1)

这是Angular JS指令。请尝试以下2种方法之一

ie.document.querySelector("[ng-click*=toggleScratchPad]").click

ie.document.parentWindow.execScript "document.querySelector('[ng-click*=toggleScratchPad]').click();"