目前遇到的一个自定义控件,是一个树形控件,
原先打算用GetTextLocation方法循环取文本,进行click
发现第一次GetTextLocation调用获得坐标正确,第2次循环的时候就不行了,取得坐标和第一次是一样的。
Function WPDocumentList()
Dim temp,SearchText
temp=true
Do WHILE temp = True
SearchText = “Progress”
temp=false
temp = VbWindow(“VbWindow”).WinObject(“AfxocList”).GetTextLocation(SearchText,leftpos,toppos,rightpos,bottompos)
If temp = True Then
VbWindow(“VbWindow”).WinObject(“AfxocList”).Click (leftpos+rightpos)/2,(toppos+bottompos)/2
VbWindow(“VbWindow”).VbButton(“Review Document”).Click
wait(10)
End If
Loop
End Function作者: TIB 时间: 2011-5-12 14:08
这个控件是ActiveX控件吗?如果是的话建议QTP加载ActiveX插件,访问.Object接口对控件进行控制作者: shanfeng1419 时间: 2011-5-13 08:55 本帖最后由 shanfeng1419 于 2011-5-13 08:57 编辑
hi lz,qtp帮助文档里是这样说的——Return Value“A Boolean value. This method returns the coordinates of the rectangle containing the first instance of the text into the Left, Top, Right, and Bottom arguments if the text is found. ”其中first的意思,我理解为只能找到一次。我试了下下面的程序,发现第一次能成功找到,且temp=true,但是第二次循环时temp = window("Paint").GetTextLocation(SearchText,leftpos,toppos,rightpos,bottompos)就赋值为False,所以就跳出循环了。即使坐标找到与第一次同,但也不能执行接下来的语句了。
Dim temp,SearchText
temp=true
Do WHILE temp = True
SearchText = "Paint"
temp=true
temp = window("Paint").GetTextLocation(SearchText,leftpos,toppos,rightpos,bottompos)
If temp = True Then
msgbox "OK"
End If
Loop作者: zouping 时间: 2011-5-13 14:54
看帖必回