问题描述
我正在尝试加载WDrv.FindElementsByXPath("//*[@id='divMessageLines']/div")
找到的消息,但是我不知道如何访问找到的单个值。每次搜索都有未知数量的值。
在此示例中,如果执行.count,则我有2个匹配元素:
Dim cntr As Integer
cntr = WDrv.FindElementsByXPath("//*[@id='divMessageLines']/div").Count
‘cntr = 2
我可以使用div 1和div [2]来访问两个值。很好,但不会总是有两个值:
cntr = WDrv.FindElementsByXPath("//*[@id='divMessageLines']/div[1]").Count
‘cntr = 1
如果我可以使用变量,则可以遍历所有元素。但这似乎并不喜欢。 如果可以用div [i]替换div 1和div [2],那就太好了,但是,当我尝试这样做时,cntr始终等于0,所以我认为它不起作用:
Cntr = WDrv.FindElementsByXPath("//*[@id='divMessageLines']/div[i]").Count
‘cntr = 0
我有这个,但是它什么也不做,并且停止运行程序(没有错误消息):
Dim div As TableElement
Set div = WDrv.FindElementsByXPath("//*[@id='divMessageLines']/div")
所以,我不确定如何访问各个元素,有办法吗?
解决方法
类似的东西
Dim itm
For Each itm in WDrv.FindElementsByXPath("//*[@id='divMessageLines']/div")
'do something with itm
Debug.Print itm.Text ' for example
Next itm