2016-06-18 40 views
0

我得到一个错误“对象不支持此属性或方法”VBA:Selenium:Foreach语句中的运行时错误?

下面是我的编码,

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元素,因为我试了很多,但我不能解决这个问题?

回答

0

您已经定义网为Variant

通过把它们放在同一行也没有违约的声明在最后

定义他们自己单独的行

Dim webs As Object 
Dim web As Object 

或者如果这不是你想要的和网络是一个阵列然后使用

Dim webs As Object 
Dim web As Variant 

编辑 - 检查文档

根据文档 - 它只返回的第一个元素 - 所以我不知道为什么你正在做一个“对于每个”

类型:IWebElement的第一个匹配条件的IWebElement。

+0

我想找到类平等“* [类^ = '标题链接ID轨点击'],都能元素告诉我如何找到所有元素,并解释我foreach语句仍然无法正常工作。我使用VBA和Selenium webdriver –

0

我已经改变findElementByCssSelector到findElementsByCssSelector,作为findElementByCssSelector返回因此,只有一个元素,对于每个不wroking但是当变成findElemenstByCssSelector,获得工作。

我已经改变了下面这一行

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

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