cswalkman 发表于 2009-5-26 10:47:21

这个对象怎么描述?

各位朋友高手能不能给我指点一下,下面代码中的winEdit对象要怎么去描述

这是脚本的部分代码
Window("RSA Authentication Manager").WinMenu("Menu").Select "User;Add User..."
Window("RSA Authentication Manager").Window("Add User").WinEdit("Edit").Set "RA0ADWG006"
Window("RSA Authentication Manager").Window("Add User").WinEdit("Edit_2").Set "RA0ADWG006"
Window("RSA Authentication Manager").Window("Add User").WinEdit("Edit_3").Set "RA0ADWG006"
Window("RSA Authentication Manager").Window("Add User").WinEdit("Edit_4").Set "RA0ADWG006"

这是编辑框的截图:

1
Edit的属性:

2

他的name是以Edit_(随机数在变),windows id 也是随机在变的,这个要怎么描述啊.....


我把脚本也放上,有朋友帮我看看吗?谢谢!(xp3,qtp9.0)

fei.ge 发表于 2009-5-26 11:45:49

【Window("RSA Authentication Manager").Window("Add User").WinEdit("Edit_2").Set "RA0ADWG006"】
<<<中的WinEdit这样描述不行么?
=======================================
set WinEdit1= Description.Create()
               WinEdit1 ("name").Value = "Edit_2"
               WinEdit1("nativeclass").Value = "Edit"
=======================================

cswalkman 发表于 2009-5-26 13:06:37

回复 2# 的帖子

跑不过啊,主要是Edit_2这个值在变,第一个是Edit,第二、第三、第四就是以Edit_+数字在变化着,这怎么办?

blizzardlyk 发表于 2009-5-26 13:39:56

属性参数化,"Edit_"&i

cswalkman 发表于 2009-5-26 13:44:09

回复 4# 的帖子

i 怎么去捕获,麻烦能不能告知下!:handshake

不知道原代码

[ 本帖最后由 cswalkman 于 2009-5-26 13:46 编辑 ]

fei.ge 发表于 2009-5-26 13:45:33

原帖由 cswalkman 于 2009-5-26 13:06 发表 http://bbs.51testing.com/images/common/back.gif
跑不过啊,主要是Edit_2这个值在变,第一个是Edit,第二、第三、第四就是以Edit_+数字在变化着,这怎么办?

这个变化是有规律的么?有规律的按楼上的办法做做

blizzardlyk 发表于 2009-5-26 13:56:11

既然你SET的值都是一样的 那先获取页面有多少个这样的WEBEDIT 然后做个FOR循环 用参数i来参数化每个控件,让QTP自动去识别

cswalkman 发表于 2009-5-26 17:55:32

回复 7# 的帖子

能得到winedit的个数吗 呵呵

blizzardlyk 发表于 2009-5-26 18:06:54

可以的,但是必须知道你这些WEBEDIT的需求是如何的? 是一个页面显示固定数量,还是由于其他某种流程操作得到的结果.
或者可以获取这个页面下的所有WEBEDIT类型的子对象数量,具体方法可见帮助文档关于childobject的方法.

ls_721521 发表于 2009-5-26 18:07:31

回复 8# 的帖子

set WinEdit1= Description.Create()
      WinEdit1("name").Value = "Edit"
set all_object=Window("RSA Authentication Manager").Window("Add User").ChildObjects(WinEdit1)
      i=all_object.count()      'i就是这个个数。

cswalkman 发表于 2009-5-27 11:32:01

谢谢楼上的朋:handshake

谢谢大家帮忙!!

[ 本帖最后由 cswalkman 于 2009-5-27 11:38 编辑 ]

onlonely 发表于 2009-5-29 21:50:36

回复 11# 的帖子

楼上这个人的方法无法解决问题,
首先会有"Edit_2"是因为你的这几个输入框都是同一种控件,但是属性有变化.为了在程序中区别起来,QTP就自动给与后面额加数字表示
Window("RSA Authentication Manager").WinMenu("Menu").Select "User;Add User..."
Window("RSA Authentication Manager").Window("Add User").WinEdit("Edit").Set "RA0ADWG006"
Window("RSA Authentication Manager").Window("Add User").WinEdit("Edit_2").Set "RA0ADWG006"
Window("RSA Authentication Manager").Window("Add User").WinEdit("Edit_3").Set "RA0ADWG006"
Window("RSA Authentication Manager").Window("Add User").WinEdit("Edit_4").Set "RA0ADWG006"

其次winid并不一定是这个控件的关键属性,
你到tools--Object Identifcation
设置关键属性如附件所示,再次录制.看看还有没有winID了

只有属性变化在有规律的情况下,QTP才能识别,
所以我们必须把那些无规律变化的控件属性去除.

[ 本帖最后由 onlonely 于 2009-5-29 21:53 编辑 ]

ls_721521 发表于 2009-5-30 08:23:18

回复 12# 的帖子

"""''''''"首先会有"Edit_2"是因为你的这几个输入框都是同一种控件,但是属性有变化.为了在程序中区别起来,QTP就自动给与后面额加数字表示'''''''''''''''''

同学,这不都说的很明白嘛,你都知道qtp是如何识别的了。。。上面的方法没错的。。。而且很常用

cswalkman 发表于 2009-6-3 10:38:44

回复 12# 13# 的帖子

谢谢你们:handshake

先回复12#吧,在录制的时候关键属性里面有两个属性 attached text 和 nativeclass,辅助属性里面有 windows id, 实际录出来的只有后两个属性,因为实际情况我没法再去修改录制一遍,所以没法检验只留 attached text 后录制出的结果是什么!

13# ,你说的方法的确不可行,因为name在这个脚本里不是QTP识别的属性,所以没有办法用name去描述这个Edit对象,也就更没办法去用这个方法获得Edit个数了!

最有可能解决的方法是添加 x 和 y,所以我也就有了另一个疑问, abs_x 和x 有什么区别?
谢谢大家!
谢谢大家的帮组,希望大家继续说出自己的看法,大家一块儿学习!

欧阳 发表于 2009-6-5 11:28:22

回复 14# 的帖子

我这提供一个方法,你最好在对象库中把那个变化的webedit的windows id那个属性直接删除。因为他是变化的所以会引起一些错误 ,直接把它删除吧。对不对我也不清楚,不过我有试过这种情况,把变化的属性去掉就可以跑通的

ls_721521 发表于 2009-6-5 11:53:30

回复 14# 的帖子

晕,我写的name只是一个方法,你可以用spy看看哪个属性可行,自己找啊。。

cswalkman 发表于 2009-6-5 14:12:28

回复 15# 16# 的帖子

谢谢你们啊16#   我理解你的意思了,只是它的属性都已经贴出来了,谢谢你

15#你说的方法我去试了试还是不行的不过最后终于解决了就是换低级录制模式

thanks everybody!:)
页: [1]
查看完整版本: 这个对象怎么描述?