使用带有SeleniumBasic的Excel VBA进行Web自动化我无法访问找到的值

问题描述

我正在尝试加载WDrv.FindElementsByXPath("//*[@id='divMessageLines']/div")找到的消息,但是我不知道如何访问找到的单个值。每次搜索都有未知数量的值。

HTML段为:

enter image description here

在此示例中,如果执行.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