51Testing软件测试论坛

标题: qtp修改脚本的问题 [打印本页]

作者: 雷声之前    时间: 2007-8-27 09:27
标题: qtp修改脚本的问题
我测试的是WEB的系统,在业务上是每运行一次脚本就会在登录后的第一个界面上(如图)加上一条记录,然后把最后一条删除掉,这样每次运行的时候就会在这个页面上报错,我应该怎么样修改脚本,谢谢高手指点!
简单的脚本内容,主要的目的就是在脚本运行到如图界面的时候忽略这个界面中的所有内容不做检查

Browser("中国最大彩票服务平台").Page("中国最大彩票服务平台").Frame("Frame").WebEdit("loginName").Set "q1"
Browser("中国最大彩票服务平台").Page("中国最大彩票服务平台").Frame("Frame").WebEdit("loginPassword").SetSecure "46d230ca583255150ee92ce41f316c00d1c8"
Browser("中国最大彩票服务平台").Page("中国最大彩票服务平台").Frame("Frame").WebEdit("loginVercode").Set "9836"
Browser("中国最大彩票服务平台").Page("中国最大彩票服务平台").Frame("Frame").Image("login_b").FireEvent "onmouseover"
Browser("中国最大彩票服务平台").Page("中国最大彩票服务平台").Frame("Frame").Image("login_b").Click
Browser("中国最大彩票服务平台").Page("个人空间").Frame("I1").Link("双色球").Click
Browser("彩票吧-双色球").Page("彩票吧-双色球").Frame("frame_quickbet").Image("机选一注").Click
Browser("彩票吧-双色球").Page("彩票吧-双色球").Frame("frame_quickbet").WebButton("代  购").Click
Browser("彩票吧-双色球").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
Browser("彩票吧-双色球").Page("彩票吧-双色球").Frame("frame_quickbet").Image("tip_ok").Click
Browser("彩票吧-双色球").Page("彩票吧-双色球").Sync
Browser("彩票吧-双色球").Close
Browser("中国最大彩票服务平台").Page("个人空间").Sync
Browser("中国最大彩票服务平台").Close

运行上边的脚本,在登录后就会报错,报错信息如图

[ 本帖最后由 雷声之前 于 2007-8-27 10:25 编辑 ]
作者: marco    时间: 2007-8-27 09:57
你的预期是怎么样的?
实际情况是怎么样的?
还有你的脚本代码????
作者: wangcai    时间: 2007-8-27 09:59
你想对这个界面进行什么操作? 或是检查什么?
作者: bobile    时间: 2007-8-27 10:02
都没有说清楚,叫人怎么解答呢
作者: oeardi    时间: 2007-8-27 12:16
。。。
作者: sstars    时间: 2007-8-27 13:02
请检查一下你运行时的对象是否和录制时的对象一致。可以重新抓一下页面的frame对象,看看在object repository中是否新生成了一个frame对象。估计很可能是browser的creationtime改变了,或者frame的index发生了变化。
作者: Banditu    时间: 2007-8-27 13:42
登录后加一个延时。。
wait()在我的脚本里出现非常频繁,我都觉得没效率,但没有的话很容易出错

[ 本帖最后由 Banditu 于 2007-8-27 13:43 编辑 ]
作者: sterson    时间: 2007-8-27 16:10
我也常常遇到这样的问题,,回放时经常找不到对象了.
作者: bobile    时间: 2007-8-27 16:37
可能是对象没有录制到对象仓库中吧
作者: sstars    时间: 2007-8-27 19:58
标题: 回复 #7 Banditu 的帖子
可以用Browser("").sync和Page("").sync代替
作者: walker1020    时间: 2007-8-28 00:45
根据楼主的描述,“每运行一次脚本就会在登录后的第一个界面上(如图)加上一条记录”,这样带来的影响就是:点击Link("双色球") 后的Frame("frame_quickbet").每次都会发生变化,QTP自然就会报告说 Frame("frame_quickbet") 不能找到了。你先到对象库里面,看看QTP是根据哪些属性来识别Frame("frame_quickbet") 地,然后 增加或删除识别QTP识别Frame("frame_quickbet").的属性。 总之,只要QTP可以找到 Frame("frame_quickbet")既可。
作者: walker1020    时间: 2007-8-28 00:49
建议楼主多去了解一些对象库的有关知识。录制的对象应该都可以在 对象库里面找到。回放脚本时,QTP会根据录制时对象的识别此对象的属性 去页面上去找相应的对象。如果对象的这些属性在运行时变化了,那么QTP就有可能报告说没有找到。
作者: walker1020    时间: 2007-8-28 00:55
举个不恰当的例子来说,QTP在对象库里面这样记录“张三”:属性“名字”的值是“张三”,“性别”是“男”,籍贯是“乌托邦”。 后来不知道什么原因,张三的“籍贯”变成了“空想共产主义”。如果在对象库里面没有修改“张三”的属性,那么QTP在回放时,QTP还是会按照 “名字”的值是“张三”、“性别”是“男”、籍贯是“乌托邦”的标准去找这个人。 结果自然是找不到了。 道理大致如此。
作者: walker1020    时间: 2007-8-28 00:55
先找对原因,然后再去考虑Solution ,这样就 容易多了
作者: 雷声之前    时间: 2007-8-28 16:02
多谢版主指点




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