51Testing软件测试论坛

标题: 很麻烦的脚本运行问题 [打印本页]

作者: zq861010    时间: 2010-3-23 20:25
标题: 很麻烦的脚本运行问题
我用QTP录制了一个filght的脚本 可以回放,但是我用描述性编程来做  就提示不能识别对象,请问哪位和我遇到同样问题的?
SystemUtil.Run "C:\Program Files\HP\QuickTest Professional\samples\flight\app\flight4a.exe"
Dialog("regexpwndtitle:=Login").WinEdit("attached text:=Agent Name:").Set "zhouqin"
Dialog("regexpwndtitle:=Login").WinEdit("Password:").SetSecure "4ba76cdfdc6a09b3888407c7eea63dc57a6d6c93"
Dialog("regexpwndtitle:=Login").WinButton("regexpwndtitle:=OK").Click
Window("Flight Reservation").Close
在别人机器上 可以运行 但是我的就不行 哪位大侠帮忙看一下呢
作者: yunbin_7    时间: 2010-3-23 20:39
你的密码是用MD5加密的吧?你把脚本中的密码改成明文应该就可以的 我之前也碰到过这个问题。MD5是不可逆的。
作者: skyzhu    时间: 2010-3-23 23:51
Dialog 上级对象去哪了?
Window("Flight Reservation").Dialog("regexpwndtitle:=Login").WinEdit("attached text:=Agent Name:").Set "zhouqin"
作者: feiyunkai    时间: 2010-3-24 09:59
原帖由 zq861010 于 2010-3-23 20:25 发表
我用QTP录制了一个filght的脚本 可以回放,但是我用描述性编程来做  就提示不能识别对象,请问哪位和我遇到同样问题的?
SystemUtil.Run "C:\Program Files\HP\QuickTest Professional\samples\flight\app\flight4a ...


Dialog("regexpwndtitle:=Login").WinEdit("Password:")
父对象用描述性编程,子对象也一定要用描述性编程,不然肯定报错

回复3#:若对象库中存在父对象时,父对象可以不用描述性编程,但若子对象用了描述性编程,那么父对象一定要用描述性编程
若对象库为空时,则要全部使用描述性编程

[ 本帖最后由 feiyunkai 于 2010-3-24 10:06 编辑 ]
作者: zq861010    时间: 2010-3-24 12:56
说一个解决的方式
作者: zq861010    时间: 2010-3-24 12:58
Cannot find the "[ WinEdit ]" object's parent "[ Dialog ]" (class Dialog). Verify that parent properties match an object currently displayed in your application
这是报错信息
作者: JonnyGu    时间: 2010-3-24 15:07
同4#
作者: skyzhu    时间: 2010-3-24 15:18
标题: 回复 6# 的帖子
至少也说一下报错位置吧
这个猜的,没实际环境
Dialog("regexpwndtitle:=Login").WinEdit("attached text:=Password:").SetSecure "4ba76cdfdc6a09b3888407c7eea63dc57a6d6c93"
作者: TIB    时间: 2010-3-24 15:51
SystemUtil.Run "C:\Program Files\HP\QuickTest Professional\samples\flight\app\flight4a.exe"
Dialog("regexpwndtitle:=Login").WinEdit("attached text:=Agent Name:").Set "zhouqin"
Dialog("regexpwndtitle:=Login").WinEdit("attached text:=Password:").SetSecure "4ba76cdfdc6a09b3888407c7eea63dc57a6d6c93"
Dialog("regexpwndtitle:=Login").WinButton("regexpwndtitle:=OK").Click
Window("regexpwndtitle:=Flight Reservation").WaitProperty "text","Flight Reservation",10
Window("regexpwndtitle:=Flight Reservation").Close
作者: zq861010    时间: 2010-3-24 18:26
报错从Dialog("regexpwndtitle:=Login").WinEdit("attached text:=Agent Name:").Set "zhouqin"开始就运行不起走了

报错信息Cannot find the "[ WinEdit ]" object's parent "[ Dialog ]" (class Dialog). Verify that parent properties match an object currently displayed in your application.

基本上任何描述性编程都找不到对象  会不会是操作系统 或者插件的问题
作者: zq861010    时间: 2010-3-24 18:33
标题: 回复 9# 的帖子
依然报错 在第二行都已经识别不了对象
会不会和环境有问题
作者: coolpan    时间: 2010-3-24 20:25
9楼的代码在win7 X64  qtp10下运行通过,LZ的是环境问题吧?
作者: zq861010    时间: 2010-3-24 21:10
标题: 回复 12# 的帖子
我的是XP 的 我也想是环境问题 但是XP和QTP不冲突的啊
作者: skyzhu    时间: 2010-3-24 22:02
报错是直接出来的还是等了一会出来的
如果是等待一会出来的话,说明Dialog("regexpwndtitle:=Login") 这个对象在系统里匹配到了多个
如果是直接就报出来了,那就换属性 ,不用 regexpwndtitle  ,或者加别的关键属性
试试
作者: zq861010    时间: 2010-3-24 22:32
标题: 回复 14# 的帖子
我换个好几个属性了 不只是dialog 它不认识 就是button 也识别不了
作者: TIB    时间: 2010-3-25 11:52
把出错提示信息贴出来
确保没有同时运行多个Flight
作者: yujie6832    时间: 2010-3-25 12:51
基本结合以上几个回答,差不多问题也就解决了,其实新人做QTP,出错大多总是这些原因
作者: skyzhu    时间: 2010-3-25 13:53
qtp9 winxp
9楼的是好的,最能怀疑的就只有16楼说的了
在SystemUtil.Run后加下面的代码,如果打印出来不是1、2,那就是环境有问题
Set aa = Description.create()
aa("regexpwndtitle").value  = "Login"
set bb = desktop.ChildObjects(aa)
print bb.count
Set cc = Description.create()
cc("Class Name").value  = "WinEdit"
set dd = bb.item(0).ChildObjects(cc)
print dd.count
作者: zq861010    时间: 2010-3-25 15:54
打印出来果真不是1、2,是0
其实我也想是环境问题 但不晓得是什么环境问题 有没有高手指点一下
作者: zq861010    时间: 2010-3-25 18:06
我用QTP录制了一个filght的脚本 可以回放,但是我用描述性编程来做  就提示不能识别对象,请问哪位和我遇到同样问题的?
SystemUtil.Run "C:\Program Files\HP\QuickTest Professional\samples\flight\app\flight4a.exe"
Dialog("regexpwndtitle:=Login").WinEdit("attached text:=Agent Name:").Set "zhouqin"
Dialog("regexpwndtitle:=Login").WinEdit("Password:").SetSecure "4ba76cdfdc6a09b3888407c7eea63dc57a6d6c93"
Dialog("regexpwndtitle:=Login").WinButton("regexpwndtitle:=OK").Click
Window("Flight Reservation").Close
在别人机器上 可以运行 但是我的就不行 哪位大侠帮忙看一下呢
报错从Dialog("regexpwndtitle:=Login").WinEdit("attached text:=Agent Name:").Set "zhouqin"开始就运行不起走了

报错信息Cannot find the "[ WinEdit ]" object's parent "[ Dialog ]" (class Dialog). Verify that parent properties match an object currently displayed in your application.

基本上任何描述性编程都找不到对象  会不会是操作系统 或者插件的问题
作者: shotstar    时间: 2010-3-25 22:08
Dialog("regexpwndtitle:=Login","Micclass:=Dialog").WinEdit("attached text:=Agent Name:").Set "zhouqin"
我加了一句,在我的电脑上可以执行了。

从报错信息看,主要问题在Dialog上,你的语句没有识别到Dialog对象,可能一个条件不够,于是我加了个Micclass的试了一下就可以了。
作者: zq861010    时间: 2010-3-27 21:58
不是那个问题,我加了的 一样没用 从设置和环境问题考虑一下吧
作者: shotstar    时间: 2010-3-28 12:36
那我给你个调试的方法,看看描述性编程的对象是否唯一。
之前的语句是Dialog("regexpwndtitle:=Login","Micclass:=Dialog").WinEdit("attached text:=Agent Name:").Set "zhouqin"
但是你那里如果还是不行的话,用下面的方法来调试一下。
Set oDesc = Description.Create()
oDesc("micclass").Value = "Dialog"
oDesc("regexpwndtitle").Value = "Login"
Set Lists = Desktop.ChildObjects(oDesc)
all=Lists.count
看看all是几,如果是1的话,那么用Dialog("regexpwndtitle:=Login","Micclass:=Dialog")应该可以识别到对话框,如果不是1,那么加个index:=0试试
Dialog识别完了再看WebEdit的
Set oDesc = Description.Create()
oDesc("micclass").Value = "WebEdit"
oDesc("attached text").Value = "Agent Name:"
Set Lists = Dialog("regexpwndtitle:=Login","Micclass:=Dialog","index:=0").ChildObjects(oDesc)
all=Lists.count
在看看这时候all是多少。
通常我用这个方法就是来看看描述对象的属性是否能唯一识别到对象,如果识别到多个,说明可能有对象隐藏在页面上,那么这时候加上index去进一步识别他,之后为了查看是否找对了对象,可以在对象后面用 .highlight的方法高亮对象,以便确认你需要操作的对象是你看到的那个。
作者: zq861010    时间: 2010-3-29 15:17
没人回复啦  大家帮帮忙啊  大侠们都出来哦
作者: shotstar    时间: 2010-3-29 15:23
标题: 回复 24# 的帖子
我不是给你写了方法了么,你有没有试着去用一下?
作者: skyzhu    时间: 2010-3-29 16:35
标题: 回复 23# 的帖子
见19楼。。。他说都是0.。。

重装QTP好的可能性大一点。。。
作者: shotstar    时间: 2010-3-29 16:50
标题: 回复 26# 的帖子
哦。没注意到。。。不过在我家里的电脑上是能正常运行的。。。
作者: zq861010    时间: 2010-3-30 09:37
已经重装过了 看来要重装操作系统




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