【问题标题】:After matching innerhtml or innertext, .click not doing anything in internet explorer匹配 innerhtml 或 innertext 后,.click 在 Internet Explorer 中不执行任何操作
【发布时间】:2020-09-28 04:32:35
【问题描述】:

我尝试了 innerhtml 和 innertext,两者都与我的字符串“Missing Enrollment”匹配,但我的 .click 函数没有单击下拉菜单中的项目。

我知道innertext与我输入的字符串匹配,因为我使用F8逐步运行并在locals中看到“Missing Enrollment”。

html code

What the page looks like

    Set AvailableLinks = IE.Document.getelementbyid("messageMessageTypeId")
    For Each cLink In AvailableLinks
        If cLink.innerhtml = "Missing Enrollment" Then
            cLink.Click
        End If
    Next cLink
    

【问题讨论】:

  • getelementbyid 返回单个元素,而不是可以循环的集合。也许你想要For Each cLink In AvailableLinks.Options
  • 我赞成 Tim Williams 的评论。您不能遍历单个元素。如果要选择下拉列表的选项之一,可以设置它的索引。例如,如果要选择数据查询,可以使用AvailableLinks.selectedIndex = 4。我也找到a similar thread你可以参考。
  • @TimWilliams 使用 .options 很有帮助,谢谢
  • @YuZhou 你发给我的那个链接很有帮助,谢谢

标签: excel vba internet-explorer


【解决方案1】:

正如蒂姆所说,我的一个问题是我正在循环单个元素。 通过使用 .options 和 .selectedindex,我可以从下拉框中选择我想要的项目。

Set AvailableLinks = IE.Document.getelementbyid("messageMessageTypeId")
For i =1 To MsgT.options.Length
     If MSgT.options(i).Text = "option I want it to select" Then
          MsgT.selectedindex=i
          Exit For
     End if
Next i

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-11
    • 2012-02-16
    • 1970-01-01
    • 2012-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多