我正在尝试按下ID为“运行报告”的按钮,问题是有两个具有相同ID的按钮,我想按第二个按钮。
Set tags = ie.Document.GetElementsByTagname("input")
For Each tagx
In tags If tagx.Value = "Run report"
Then tagx.Click
End If
Next
这适用于第一个按钮但无法找到按第二个按钮的方法。有人有任何提示吗?
提前致谢
答案 0 :(得分:1)
听起来很奇怪两个按钮具有相同的id
,网页开发人员倾向于使用此属性的唯一信息,因为它通常是CSS和JavaScript的参考...你确定你的意思不一样{ {1}}?无论如何,你总是可以通过在代码中添加一个控制变量来控制这样的问题,该变量告诉你它是第一次还是第二次:
Value
我使用了Set tags = ie.Document.GetElementsByTagname("input")
meetFirst = False '<-- we didn't meet any first button with id = "myID" yet
For Each tagx In tags
If tagx.id = "myID"
If meetFirst = False Then
meetFirst = True '<-- we met the first button
Else '<-- if we get here, we are dealing with the second "myID" button
tagx.Click
Exit For '<-- we can end the loop
End If
End If
Next
的示例,坚持你的句子按钮具有相同的ID,我想按第二个。您可以更改属性以进行检查(tagx.id
,.Value
等等)
答案 1 :(得分:0)
或
ie.document.querySelectorAll("#run-report")(1).Click
querySelectorAll
方法可以检索ID为nodeList
的所有元素中的run-report
。您可以为特定元素建立索引。
有时语法略有不同:
ie.document.querySelectorAll("#run-report").Item(1).Click