51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 7310|回复: 14
打印 上一主题 下一主题

控件的 MSW_id一直变化,winrunner无法识别

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-6-30 17:58:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我们公司做的登陆窗口的“用户名”输入框,在winrunner中取得两个属性值,MSW_id: 1377614,
MSW_class: TRzEdit。
其中msw_id的值每次打开的时候就变化,导致winrunner重放的时候不认识这个控件,请问有什么办法解决?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2006-7-1 14:28:00 | 只看该作者
可以用虚拟对象解决。
Tools->Virtual object Wizard.
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2006-7-7 14:55:23 | 只看该作者
用虚拟对像不能完成解决这个问题,你需要手工修改该对象的Class,将MSW_id在这个类中去除,将这句话贴到你的脚本中,因为你修改类后,重新运行WR,会回到原来的内容,所以需要将这个class语句贴到脚本中去
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2006-7-10 15:46:27 | 只看该作者

希望该控件的位置和大小不要变

更改贵gui map里的class内容,加上location x ,location y等值,去掉msw_id。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2007-7-18 16:38:02 | 只看该作者
原帖由 今天有雾 于 2006-7-7 14:55 发表
用虚拟对像不能完成解决这个问题,你需要手工修改该对象的Class,将MSW_id在这个类中去除,将这句话贴到你的脚本中,因为你修改类后,重新运行WR,会回到原来的内容,所以需要将这个class语句贴到脚本中去


这个具体是怎么做的?我去掉了MSW_id,但是"将这句话贴到你的脚本中"不知道是贴哪句话,到脚本的什么地方?
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-7-18 21:23:50 | 只看该作者
原帖由 iltest 于 2007-7-18 16:38 发表


这个具体是怎么做的?我去掉了MSW_id,但是"将这句话贴到你的脚本中"不知道是贴哪句话,到脚本的什么地方?

一般是在GUI map文件中将MSW_id这个属性去掉,换上location来定位,但是location一般无法准确给出,所以lz需要从0开始逐渐往上添加,并用show按钮确认是哪个location,让WR可以识别正确
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2007-7-19 09:20:45 | 只看该作者
原帖由 dionysus 于 2007-7-18 21:23 发表

一般是在GUI map文件中将MSW_id这个属性去掉,换上location来定位,但是location一般无法准确给出,所以lz需要从0开始逐渐往上添加,并用show按钮确认是哪个location,让WR可以识别正确

想请教一个问题:我在进行对象映射时都只是把MSW_id删掉,选中了location就直接用了,好像该location的值是自动生成的吧,我看过好多贴都说要一个一个试,但我就搞不清楚该怎么试?在哪里试?非常感谢!
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2007-7-19 09:21:00 | 只看该作者
嗯,谢谢6楼的.这样做果然可以了.
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2007-7-19 16:15:18 | 只看该作者
原帖由 lantianwei 于 2007-7-19 09:20 发表

想请教一个问题:我在进行对象映射时都只是把MSW_id删掉,选中了location就直接用了,好像该location的值是自动生成的吧,我看过好多贴都说要一个一个试,但我就搞不清楚该怎么试?在哪里试?非常感谢!

一般我是将location替换id,location=..., 没有试过不指定数值是否能回放成功。貌似如果界面上的控件少就不用指定location,类似于QTP描述性编程中常用的index:=... 我见过的一般都是使用函数得到控件的index,并把这个值写到脚本中用来定位控件
大家拍砖
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2007-7-20 09:00:14 | 只看该作者
非常感谢dionysus的回复,在此表示感谢!
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2007-8-8 15:58:19 | 只看该作者
原帖由 dionysus 于 2007-7-18 21:23 发表

一般是在GUI map文件中将MSW_id这个属性去掉,换上location来定位,但是location一般无法准确给出,所以lz需要从0开始逐渐往上添加,并用show按钮确认是哪个location,让WR可以识别正确

  


我也是新学WR,正好遇到这个问题,听不太懂啊,能否把步聚说清楚点啊?非常感谢哦!
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2007-8-8 16:07:55 | 只看该作者
怎么做才能在识别对象时,不用class和MSW_id来识别,用label、name、attached_text等属性
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2007-8-8 16:52:30 | 只看该作者
这也就是winrunner中的对象映射的机制

点击winrunner->tools-gui map configuration ,8.2版本的话点击+号,然后用hand选择你需要识别的那个控件;点击ok后,选择edit(就是删除键后面那个)
在弹出的configure class窗口中

mapped to class表示你需要把你的对象映射成那个控件,像楼上说的那个,应该可以把它映射成edit对象

然后在learned properties中选择你需要识别的属性
有可选,不用,必选3个选项

最下面你可以选择在上述属性都无法识别的情况下,是用loaction还是index来识别

点击ok就行了

如果想下次不再重复这个工作,点击configure class窗体中的paste按钮
把映射的这段话加到你脚本的最开始就ok了
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2008-4-25 13:24:30 | 只看该作者

回复 9# 的帖子

用什么函数得到控件的index
我这里用location,好像也不行,因为有不同的输入,会出现不同的控件,而它们是在同一个地方的.
识别出来就成同一个对象了
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2011-4-14 09:41:31 | 只看该作者
小弟一个问题:属性当中唯一能定位对象的只有ABS_X,ABS_Y, 但这样感觉是下下策,不可能所有的控件都这样来定位。Index + Location 就可以定位到对象,但是也是用笨方法,一个个的数字去试,有什么方法能获取到这两个属性类?
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-5-3 20:03 , Processed in 0.081319 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表