childobjects方法得到的对象集合的顺序可能不是按照页面上从上到下的顺序排列的
Function GetCalculateNode()Dim i
i = 1
Set PlusCollection = GetPlusCollection()
NumberOfPlus = PlusCollection.Count
Do
LastNum = GetReportNum()
minusNum = GetMinusNum()
CurrentCnt = unClickPlusNum + minusNum
TxtOfPlus= GetTxt(i)
IfInStr(1,UnExpandNodeNameList,TxtOfPlus,1)=0 Then
PlusCollection(unClickPlusNum).Click
CurrentNum = GetReportNum()
If CurrentNum>LastNum Then
Call CalculateReports(LastNum,CurrentNum)
i = i + CurrentNum-LastNum
End If
else
unClickPlusNum = unClickPlusNum + 1
End If
Set PlusCollection = GetPlusCollection()
NumberOfPlus = PlusCollection.Count
i = i +1
Loop Until CurrentCnt = NumberOfPlus
End Function
当i= 4,理论上是 【卫统1—7表】 前面的加号,但是却点击了【卫统1—6表】前的加号;
也就是说,使用childobjects获取到的对象集合,不一定是页面上从上到下的顺序排列的
这样的情况怎么办才好? 使用dom方法吗?
[ 本帖最后由 FLY000 于 2010-9-16 16:32 编辑 ] 脚本好复杂。。。全变量和未知函数真没法看
childobjects顺序是有的,而且固定的,但并不是根据上下左右来的,只是和上下左右这样的顺序差不多而已
另外每次循环都更新对象集,里面的东西也会变的吧
Set PlusCollection = GetPlusCollection() 是的,每次展开需要展开的节点后,必须重新获取对象集
但是 如果 childobjects获取的对象集是有顺序的,那么也应该不是这里有影响吧?
【而且固定的,但并不是根据上下左右来的,只是和上下左右这样的顺序差不多而已】
这句话很含糊,还是没有确定的答案;:lol
到底是个什么规则来排的?
[ 本帖最后由 FLY000 于 2010-9-16 18:28 编辑 ] 顺序就是没准确答案,问开发QTP的人。。。
展开新节点以后,可能重新获取对象集的顺序和个数变了,这个就要自己去慢慢调试了
页:
[1]