51Testing软件测试论坛

标题: 关于GetTextLocation的问题,高手指教 [打印本页]

作者: hotsmile99    时间: 2011-5-11 19:00
标题: 关于GetTextLocation的问题,高手指教
本帖最后由 hotsmile99 于 2011-5-11 19:14 编辑

目前遇到的一个自定义控件,是一个树形控件,
原先打算用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
看帖必回

等答案
作者: hotsmile99    时间: 2011-5-14 22:22
不对呀,我试过如果定义多个变量,我坐标定义一套变量就可以取到,例如我要找3次,我就要定义3套变量,我试过是可以的,不信,你试试看
作者: hotsmile99    时间: 2011-5-14 22:22
不对呀,我试过如果定义多个变量,我坐标定义一套变量就可以取到,例如我要找3次,我就要定义3套变量,我试过是可以的,不信,你试试看




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