QTP描述性编程的exist方法判断问题求解
我在使用QTP描述性编程判断,控件能操作但是使用exist判断控件是否存在却返回 False,求解代码如下:
Set pcontrol=description.Create()
pcontrol("micclass").value="Window"'
pcontrol("text").value=".*登录.*"
Set control=desktop.ChildObjects(pcontrol)
If control.count>0 Then
control(0).activate()
print control(0).exist
end if 给定限定条件你也可以使用正则表达式,不过注意设置开关打开:
pcontrol("text").regularExpression = True 回复 2# lgh75560
开关是默认打开的,现在问题不是 找不到控件,控件都可以进行activate(),close等操作,证明控件是可以找到的,但是用
exist判断存在时一直返回false,这里不理解,而且如果把 print control(0).exist放在操作前面,后面的操作都会报错,如下面代码
Set pcontrol=description.Create()
pcontrol("micclass").value="Window"'
pcontrol("text").regularExpression = True
pcontrol("text").value=".*登录.*"
Set control=desktop.ChildObjects(pcontrol)
If control.count>0 Then
print control(0).exist
control(0).activate()
end if
错误如下
General run error.
Line (8): "control(0).activate()". 额,我也不大清楚咯,看样子,你要要遍历桌面窗口,然后激活某个特定的。
QTP里面确实没弄过,坐等大侠解决你的问题。 回复 4# lgh75560
谢谢lgh75560,热心人啊 很久前用过,说错勿怪。
我看起其他人都在这么用
If Window("Flight Reservation").Exist(2) Then
加了个括号和时间数字,不知道不加的用法,会不会有问题。 回复 6# omg
谢谢,exist应该等同exist(20),现在奇怪的按下面这种写法是可以的
print Window("text:=.*登录.*").exist 返回为ture,理论上和上面代码的作用是一样的,按上面的
写法就返回false 十分不解 本帖最后由 lgh75560 于 2013-3-21 15:24 编辑
呵呵,之前不知道能直接使用Desktop对象获取桌面顶层窗口,
我打开两个画图程序,跑你那段代码是没有问题的,
也不关正则的事情,算我寡闻鸟,,, 回复 8# lgh75560
一直没有解决,我换个写法吧 是什么语言写的程序啊,
C#
C++?还是啥 楼主,激活window窗口的固定格式是Window("").Activate,会不会是你的大小写的问题啊 用 if control(0).existthen control(0).active 看看呢
页:
[1]