51Testing软件测试论坛

标题: QTP回放 [打印本页]

作者: cjg007    时间: 2009-1-13 18:20
标题: QTP回放
我用QTP录制了一段脚本
Window("协议").WinObject("接受").Click 59,7
Window("登陆").WinObject("确定").Click 39,11
Window("Server").WinObject("TVideoWnd").Click 192,143
Window("Server").WinObject("PicExpand").Click 20,29
Window("Server").WinObject("PicExpand").Click 17,22
Window("Server").WinObject("PicExpand").Click 16,21
Window("Server").WinObject("Config").Click 29,22
Window("系统配置").WinObject("TPanel").Drag 67,81
Window("系统配置").WinObject("TPanel").Drop 343,268
Window("系统配置").WinObject("确定").Click 48,7
Window("Server").WinObject("TVideoWnd").Click 345,259
Window("Server").WinObject("Config").Click 30,26
Window("系统配置").WinObject("TPanel_2").Click 153,122
Window("系统配置").WinObject("删除遮挡").Click 62,18
Window("系统配置").WinObject("删除遮挡").Click 58,10
Window("系统配置").WinObject("TPanel").Click 233,197
Window("系统配置").WinObject("删除遮挡").Click 50,12
Window("系统配置").WinObject("确定").Click 40,5
Window("Server").WinObject("Quit").Click 24,19
Window("退出系统").WinObject("确定").Click 52,16
上出现有个协议的框 要点击接受...但是回放的时候就停在那里,
后面的其他要点击都一样,不能自动的回放,但是录制的时候是有操作的,为什么回放点击都没有 全都停在那里了
是什么回事,是不是我的脚本录制错了,还是要写什么代码?(具体要写什么代码)
  高手的帮个忙,我是新手刚接触这个
作者: baomingyuan    时间: 2009-1-14 10:48
你测的系统是什么语言开发的?
作者: lingxin5013    时间: 2009-1-14 11:13
你什么语言写的 看见没click后都是坐标 这个坐标是相对于你显示器的相对坐标,当你下次打开后运行 很可能就运行失败。不是你脚本的问题是他不能够识别到你的坐标位置了。怎么搞这个问题就大了。解决办法很多 呵呵 依据实际情况解决了。
作者: cjg007    时间: 2009-1-14 12:47
软件是 C++编写的,录制的是应用程序,就是桌面一个.EXE图标
你说是按钮的坐标? QTP录下的脚本 点到那行代码,下面都都对应的页面显示,我点那些
指定的就是那个按钮,但是回放的时候,好像没有点击那个按钮,好像没有执行点击的操作!
具体咋个弄哇,我是刚学这个 什么都不懂

[ 本帖最后由 cjg007 于 2009-1-14 12:52 编辑 ]
作者: chaotiancaitl    时间: 2009-1-14 15:42
过不去的地方录制的时候使用键盘操作(tab+enter)试试,不用鼠标
作者: lingxin5013    时间: 2009-1-15 09:58
查看你的 坐标位置是那一类坐标。 相对坐标合适绝对坐标。
你说的如果 click没有往下走 你可以尝试下 在 相应的操作前加个 wait
作者: cjg007    时间: 2009-1-15 14:54
原帖由 lingxin5013 于 2009-1-15 09:58 发表
查看你的 坐标位置是那一类坐标。 相对坐标合适绝对坐标。
你说的如果 click没有往下走 你可以尝试下 在 相应的操作前加个 wait

我想也是坐标的问题
   我以相同的操作录制了三次,而且我的程序是全屏的,所有的显示框都是固定的,不能移动
   三次录制的同样操作 坐标都不一样,
如:
Window("协议").WinObject("接受").Click 59,7
Window("登陆").WinObject("确定").Click 39,11

后面的坐标 录制一次就和上次不一样,但是我显示框是绝对没有移动的,这是怎么回事啊?
作者: asoqa    时间: 2009-1-15 15:21
标题: 回复 7# 的帖子
先解答你这个疑问:
我们可打开QTP的帮主搜一下WinObject的内容,可以看到关于WinObject.Click方法的坐标属性有这样的说明:
Note that the specified coordinates are relative to the upper left corner of the object.  Default = micNoCoordinate (-9999) -- center of the object.
也就是Click的坐标是相对坐标,相对于本对象左上角的坐标,默认是中间。为什么你录制了多次,坐标值都不一样,很显然,因为你每次点击在WinObject上的位置是不一样的。也因此楼上同学关于坐标的解释是不正确的。坐标没有什么问题,哪怕你用Click 1,1也可以。

至于为什么不能回放,确实如楼上所说,可能原因很多。根据你的描述,我很难断定是什么原因导致的。
作者: cjg007    时间: 2009-1-15 16:10
原帖由 asoqa 于 2009-1-15 15:21 发表
先解答你这个疑问:
我们可打开QTP的帮主搜一下WinObject的内容,可以看到关于WinObject.Click方法的坐标属性有这样的说明:
Note that the specified coordinates are relative to the upper left corner of the  ...

谢谢讲解
  我回放的时候出现下面的错误,知道意思具体咋解决不知道?

  Cannot identify the object "接受" (of class WinObject). Verify that this object's properties match an object currently displayed in your application.

  Cannot identify the object "接受" (of class WinObject). Verify that this object's properties match an object currently displayed in your application.
Line (1): "Window("协议").WinObject("接受").Click 48,13".
就是上面的错误

[ 本帖最后由 cjg007 于 2009-1-15 16:17 编辑 ]
作者: thm120    时间: 2009-1-15 17:20
原帖由 lingxin5013 于 2009-1-14 11:13 发表
你什么语言写的 看见没click后都是坐标 这个坐标是相对于你显示器的相对坐标,当你下次打开后运行 很可能就运行失败。不是你脚本的问题是他不能够识别到你的坐标位置了。怎么搞这个问题就大了。解决办法很多 呵呵 依 ...

明白
作者: cjg007    时间: 2009-1-16 11:14
在这个里面设置对象的识别的属性,我设置固定的识别,怎么设置?




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