不想继续点点点 发表于 2010-1-11 15:57:45

求助一个简单的描述性编程的问题

  最近学习描述性编程,录制了QTP自带程序的一段脚本。脚本中的对象在对象库里都存在,但是if - else那块,如果用被注释掉的描述性编程就会保存,识别不了对象。请问是怎么回事?
  就是先点击help,然后判断这个help的dialog存不存在。如果存在,就输入用户名、密码后登陆。登陆后,点击关闭按钮就结束这段脚本的录制了。
  但是我把判断这个help的dialog存不存在的代码换成描述性的编程,就会报对象无法识别的问题。请大家帮我看看,问题出在哪儿?谢谢了~~


Dialog("Login").WinButton("Help").Click
If Dialog("Login").Dialog("Flight Reservations").Exist Then
 Dialog("Login").Dialog("Flight Reservations").WinButton("确定").Click       
End If
       
'If Dialog("text:=Login").Dialog("text:=Flight Reservations").Exist Then
 'Dialog("text:=Login").Dialog("text:=Flight Reservations").WinButton("text := 确定").Click
'End If
Dialog("Login").WinEdit("Agent Name:").Set "admin"
Dialog("Login").WinEdit("Password:").SetSecure "4b4ac8599016e03d9d9c0ea18f4444bf421b6eb7"
Dialog("Login").WinButton("OK").Click
Window("Flight Reservation").Close


以上是录制的脚步,这样执行时没问题。
如果将注释的那段if - else启用,就会出错。

[ 本帖最后由 不想继续点点点 于 2010-1-11 16:08 编辑 ]

luwb 发表于 2010-1-11 16:17:55

后续强迫症吧,从使用了描述性编程的地方起后面的对象都要用描述性编程

lantianwei 发表于 2010-1-11 16:27:21

回复 2# 的帖子

从代码上看没啥问题
是不是给的属性有问题
LZ可以把对象的属性图贴出来看下

不想继续点点点 发表于 2010-1-11 16:50:48

谢谢两位回复

1. 首先,我将从if - else以后的脚步,都用了描述性编程。但是还是执行不了脚步。
 走到Dialog("text:=Login").Dialog("text:=Flight Reservations").WinButton("text := 确定").Click    ,这句是保错。
2. 接着我用Exist ,来检查对象。
 Msgbox Dialog("text:=Login").Exist
 Msgbox Dialog("text:=Login").Dialog("text:=Flight Reservations").Exist
 Msgbox Dialog("text:=Login").Dialog("text:=Flight Reservations").WinButton("text := 确定").Exist --->走到此句时,信息框提示“False”报错。

lantianwei,属性图马上就贴出来。请大家继续帮我看看问题出在哪儿。

不想继续点点点 发表于 2010-1-11 16:55:47



[ 本帖最后由 不想继续点点点 于 2010-1-11 16:59 编辑 ]

lantianwei 发表于 2010-1-11 17:04:23

回复 5# 的帖子

检查WinButton("text := 确定)的对象属性此处有问题

不想继续点点点 发表于 2010-1-11 17:25:01

我修改了以下的脚本,为winButton有加了一对属性。但是对象还是识别不了。(加属性时,我同时也在tool-Object Identification为WinButton默认属性中,增加了attached text。)

Dialog("text:=Login").Dialog("text:=Flight Reservations").WinButton("attached text := The password is 'MERCURY'","nativeclass:=Button","text := 确定").Click

lantianwei 发表于 2010-1-11 17:39:00

把 确定 的属性图贴出来看下

不想继续点点点 发表于 2010-1-11 21:06:14

确定按钮在对象库中的属性

小狐狸如如 发表于 2010-1-11 21:13:57

估计是这个描述性编程找出来的对象不唯一,建议你用childOBJECT来检查下,是不是有多个对象

不想继续点点点 发表于 2010-1-12 09:56:24

小狐狸如如,Dialog("text:=Flight Reservations")里面只有一个WinButton("text := 确定")的对象的

不想继续点点点 发表于 2010-1-12 10:04:36

操作图示:

岸上的鱼儿 发表于 2010-1-12 11:25:40

我脚本这样的试了下没问题

Dialog("text:=Login").Activate
Dialog("text:=Login").WinButton("text:=Help").Click
If Dialog("text:=Login").Dialog("text:=Flight Reservations").Exist Then
    Dialog("text:=Login").Dialog("text:=Flight Reservations").WinButton("text:=确定").Click      
End If

Dialog("text:=Login").WinEdit("attached text:=Agent Name:").Set "mercury"
Dialog("text:=Login").WinEdit("attached text:=Password:").SetSecure "4b4be9f45d5c2a42c42db48ebc1102efefbbcc25"
Dialog("text:=Login").WinButton("text:=OK").Click

不想继续点点点 发表于 2010-1-12 11:59:52

谢谢鱼儿,
我上午也将脚本从头到尾都用的描述性编程改了。脚本和你的一样,运行的确没问题了。
页: [1]
查看完整版本: 求助一个简单的描述性编程的问题