使用 Excel VBA 和 SeleniumBasic 的 Web 自动化。我无法访问我找到的值
Web Automation using Excel VBA with SeleniumBasic. I cannot access the values I have found
我正在尝试加载我通过 WDrv.FindElementsByXPath("//*[@id='divMessageLines']/div")
找到的消息,但我不知道如何访问我找到的 individual 值。每次搜索都有未知数量的值。
HTML 段是:
在此示例中,如果我执行 .count,我将有 2 个匹配元素:
Dim cntr As Integer
cntr = WDrv.FindElementsByXPath("//*[@id='divMessageLines']/div").Count
‘cntr = 2
我可以使用 div1 和 div[2] 访问这两个值中的每一个。这很好,但不会总是有两个值:
cntr = WDrv.FindElementsByXPath("//*[@id='divMessageLines']/div[1]").Count
‘cntr = 1
如果我可以使用变量,我就可以遍历所有元素。但它似乎并不喜欢那样。
如果我可以用 div[i] 替换 div1 和 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")
所以,我不确定如何访问 individual 元素,有什么办法吗?
怎么样
Dim itm
For Each itm in WDrv.FindElementsByXPath("//*[@id='divMessageLines']/div")
'do something with itm
Debug.Print itm.Text ' for example
Next itm
我正在尝试加载我通过 WDrv.FindElementsByXPath("//*[@id='divMessageLines']/div")
找到的消息,但我不知道如何访问我找到的 individual 值。每次搜索都有未知数量的值。
HTML 段是:
在此示例中,如果我执行 .count,我将有 2 个匹配元素:
Dim cntr As Integer
cntr = WDrv.FindElementsByXPath("//*[@id='divMessageLines']/div").Count
‘cntr = 2
我可以使用 div1 和 div[2] 访问这两个值中的每一个。这很好,但不会总是有两个值:
cntr = WDrv.FindElementsByXPath("//*[@id='divMessageLines']/div[1]").Count
‘cntr = 1
如果我可以使用变量,我就可以遍历所有元素。但它似乎并不喜欢那样。 如果我可以用 div[i] 替换 div1 和 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")
所以,我不确定如何访问 individual 元素,有什么办法吗?
怎么样
Dim itm
For Each itm in WDrv.FindElementsByXPath("//*[@id='divMessageLines']/div")
'do something with itm
Debug.Print itm.Text ' for example
Next itm