158403991 发表于 2009-11-2 17:10:10

请教一个很简单的问题

请教大家一个很简单的问题,关于qtp
我录制的qtp自身带的订票的那个系统的登录脚本,单机版的,脚本如下:
Dialog("Login").WinEdit("Agent Name:").Set DataTable("p_Text", dtGlobalSheet)
Dialog("Login").WinEdit("Password:").SetSecure DataTable("p_Text2", dtGlobalSheet)
Dialog("Login").WinButton("OK").Click
Window("Flight Reservation").Close
我在数据表里填了三行数据如图:
脚本所在的ACTION也设置了run on all rows
问题:脚本在运行第一行参数的时候可以正常运行,运行到第二行就报错
具体如下:

venus1813 发表于 2009-11-2 17:36:56

回复 1# 的帖子

关注一下,不知道是不是第二次运行后,父对象已被改变呢

ly113 发表于 2009-11-2 17:47:08

应该是找不到对象吧~
那个脚本里的表名怎么跟数据表的表名不一样:L

mentgmery 发表于 2009-11-2 17:52:45

把所有的已经识别的对象都删除后,你再重新录制一遍,这个错误提示信息我也遇到过

懵懂的女孩 发表于 2009-11-2 17:55:37

把你录制的专家视图中的图贴上来看一下

懵懂的女孩 发表于 2009-11-2 17:56:56

如果我没有记错的话,你把第三组的登录名前面用字母开头,不要用数字开头试试

zhengpeipei 发表于 2009-11-2 18:51:02

脚本是Dialog("Login").WinEdit("Password:").SetSecure DataTable("p_Text2", dtGlobalSheet)
datatable中怎么是p_Text1?

barcelona 发表于 2009-11-2 20:53:38

楼主啊咱俩交流下吧
我今天就想问这个问题呢。。太丢人了一个人在公司搞了很久没搞出来 郁闷死了
msn fmgcool@tom.com

[ 本帖最后由 barcelona 于 2009-11-2 20:59 编辑 ]

浪少 发表于 2009-11-3 10:37:28

逻辑上没错误的话,查看下close后有没open程序的动作,还是否是速度太快造成的,在open后加个wait(1)试试

158403991 发表于 2009-11-3 11:24:24

非常感谢各位的回帖,我是把数据表贴错了,不过那不是问题的根本,在这里对不住大家了,我再把贴图完整的贴一下,大家探讨一下
专家视图:

关键字视图:

数据表:

出现的问题:
用参数化过的用户名和密码进行登录,第一遍可以正常运行,第二遍就会报错,脚本所在的ACTION我已经设置执行所有行,报错如图:

根据各位的回答我逐个回复一下:
1我上次的数据贴图与校本没对应上,实在对不起大家,我没看清楚,是我第二录的时候的贴图,不是这个原因
2我数据表中的用户名都是正确的,不管数字还是字母,不是问题的所在
3我录制时对象库是空的,没有其他项目的对象存在
4我反复录了多遍没有找出问题所在,在8.2和9.2上都录过,值得说明的是我在录公司项目的时候,参数化的用户名和密码却可以循环迭代,为什么到了这个系统就不行了呢,应该不时配置上的问题,我也没找出两个操作有什么不同,都是登录系统后然后将所有页面都关闭
5我录制本系统时,是采用让QTP自动打开系统的模式,我想是不时跟这个有关,因为我在重新录制时,采用的是先将系统打开再录制,这样数据库中的每行数据都可以正常迭代,但每迭代一次我都要手动打开系统,是不时有什么设置,或者是写一行什么代码,能让系统自动启动,我是新手,请大家一定多指教,大家共同学习,共同进步

懵懂的女孩 发表于 2009-11-3 11:45:27

你可以把登录和关闭分别放到一个action中,将你参数化的数据放到一个action中,然后将这个action设置成执行你数据表中所有的数据,你试试看,我正准备发一个关于参数化的资料,我也正在学习这个,整理了一下自己理解的,可以供你参考下。

浪少 发表于 2009-11-3 11:46:13

回复 10# 的帖子

::xzao:::
这不明显错误蛮,你想想第二次系统寻找登录框肯定是失败的啊,当然报那个错了
把打开的动作也录制进脚本里就OK了,不需要手动做什么打开的 我汗

Haereticus 发表于 2009-11-3 11:49:40

QTP自动打开程序只会在运行时打开一次,运行第一个循环时,你把窗口关闭了,第二循环程序没打开所以就找不到对象了,你可以把打开程序放在脚本里实现,这样应该就没问题了

158403991 发表于 2009-11-3 12:58:25

在各位的指点之下,问题终于解决了,非常感谢各位
页: [1]
查看完整版本: 请教一个很简单的问题