VBA:Selenium:Foreach语句上的运行时错误?

时间:2016-06-18 16:55:58

标签: vba excel-vba selenium selenium-webdriver excel

我收到错误"对象不支持此属性或方法"

以下是我的编码,

Dim webs, web As Object
Set webs = driverg.findElementByCssSelector("*[class^='title-link id-track-click']")

**For Each web In webs**
Debug.Print web.Text
Next web

当程序在foreach中启动时,我收到此错误。

是否有其他方法循环Web元素,因为我已经尝试了很多,但我无法解决这个问题?

2 个答案:

答案 0 :(得分:0)

您已将网络定义为变体

通过将它们放在同一行上,它不会默认为最后的声明

在各自独立的行上定义它们

Dim webs As Object 
Dim web As Object

或者,如果那不是你想要的,而web是一个数组,那么使用

Dim webs As Object 
Dim web As Variant
  

编辑 - 检查文档

根据文档 - 它只返回第一个元素 - 所以我不确定你为什么要做“为每个人”

  

类型:IWebElement符合条件的第一个IWebElement。

答案 1 :(得分:0)

我已经将findElementByCssSelector更改为findElementsByCssSelector,因为findElementByCssSelector只返回一个元素,因此每个元素都没有变形,但是当变为findElemenstByCssSelector时,开始工作。

我已经改变了以下行

driverg.findElementByCssSelector("*[class^='title-link id-track-click']")

driverg.findElementsByCssSelector("*[class^='title-link id-track-click']")