51Testing软件测试论坛

标题: For循环中数组操作的问题 [打印本页]

作者: ChanJian910    时间: 2010-3-18 17:29
标题: For循环中数组操作的问题
Set aaa=Description.Create
aaa("micclass").value="Frame"

set Collection=Browser("test").Page("test").ChildObjects(aaa)
For j=0 to Collection.Count-1
                        If (Collection(j).GetROProperty("title")="待办工作列表") Then
                                                htmlid=Collection(j).GetROProperty("html id")  '//满足条件的Frame的html id属性
                        End if
Next

问题描述:获取了当前页面test下Frame对象的个数Collection.Count,然后根据Frame对象的title属性的差异获得了满足条件的Frame的个数b(Collection.Count肯定是大于b的),请问如何将htmlid作为一个可变长度字符串数组的元素,并获取存储后数组的长度?
作者: skyzhu    时间: 2010-3-18 17:40
2个办法
定义一个 Collection.Count 长度的数组
把拿到的htmlid一个个往里放
htmlid(i)=Collection(j).GetROProperty("html id")  
i =i +1   最后长度也就有了
另外一个就是全拼接在一个字符串里,用特定符号分割,最后split一下
作者: ChanJian910    时间: 2010-3-19 09:43
原帖由 skyzhu 于 2010-3-18 17:40 发表
2个办法
定义一个 Collection.Count 长度的数组
把拿到的htmlid一个个往里放
htmlid(i)=Collection(j).GetROProperty("html id")  
i =i +1   最后长度也就有了
另外一个就是全拼接在一个字符串里,用特定符号分 ...


i+1这种方式确实可以获得数组的长度,但是因为Collection.Count是个动态变化的值,会随着当前页面加载导致值差异,这样做的话,我声明一个变长数组htmlid(i),会提示数组下标越界,请问该如何处理?
作者: ChanJian910    时间: 2010-3-19 09:50
问题已解决,贴上代码

Set aaa=Description.Create
aaa("micclass").value="Frame"

set Collection=Browser("test").Page("test").ChildObjects(aaa)

For j=0 to Collection.Count-1

                        If (Collection(j).GetROProperty("title")="待办工作列表") Then


                                                ReDim htmlid(i)

                                                htmlid(i)=Collection(j).GetROProperty("html id")
                                               
                                                i=i+1

                                                Print i       
                                                Print htmlid(i-1)

                        End if

Next

[ 本帖最后由 ChanJian910 于 2010-3-19 09:54 编辑 ]
作者: zhengpeipei    时间: 2010-3-19 13:25
路过




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2