【问题标题】:VBA click at element in IEVBA点击IE中的元素
【发布时间】:2019-04-02 20:00:31
【问题描述】:

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

    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”元素,提前致谢!

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>

【问题讨论】:

  • 尝试迭代这个集合 ie.Document.getElementsByClassName("btn-group").getElementsByTagName("a") 并寻找 InnerText 或 InnerHTML 等于 ScratchPad
  • @RyanWildry 感谢您的回复!尝试在 objCollection 行上这样做,但弹出此错误:“对象不接受此属性或方法”

标签: excel vba internet-explorer web-scraping


【解决方案1】:

这是一个 Angular JS 指令。尝试以下任一方法 2

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

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

【讨论】:

    猜你喜欢
    • 2019-08-31
    • 1970-01-01
    • 2015-01-29
    • 1970-01-01
    • 1970-01-01
    • 2016-05-19
    • 2015-05-14
    • 1970-01-01
    • 2019-06-01
    相关资源
    最近更新 更多