51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2864|回复: 15
打印 上一主题 下一主题

关于WR中GUI MAP的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-8-23 15:50:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在出现一个严重的问题
脚本每当运行到一EDTAttribute的地方就不动了
后来发现 用SPY看了下, 每次刷新个帐号 这个OBJECT的描述里的一格ID就变了
然后提示就是  不能发现对象 不好HIGHLIGHT
请问这个问题怎么解决
谢谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-8-23 16:38:10 | 只看该作者
lz把这个控件的gui map描述放上来看下?
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-8-24 10:06:03 | 只看该作者
谢谢斑竹

目前的描述是这样的:
CLASS   OBJECT
LABEL EDTATTRIBUTE
MSW_ID 132002
MSW_CLASS TEDIT

就说每次ID都变的 然后控件在回放时候就不能够识别
我已经用GUI CONFIGURE隐射过了 也把ID 这个选像除去  但这个结果没有被保存下来啊
而且就是没用 每次回放都显示不能够识别 下周就要交测试报告了 ...帮帮忙哟
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-8-24 10:09:51 | 只看该作者
把MSW_ID 132002这个属性删掉
如果还不能认出来
试着加个location或者index属性
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2007-8-24 10:23:47 | 只看该作者
去掉后就不能够认出来了
具体的LOCATION INDEX该怎么写呢
不太清楚能否说明白点么?
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-8-24 10:37:08 | 只看该作者
在编程的时候,控件都会有一些属性
比如label,class等属性
其中有些属性是不会变化的,比如label,class等,这些是在开发的时候写死的了
而有些属性是可变的,比如常见的msw_id,这是程序运行的时候系统自动分配的

所以在录制脚本的时候,要尽量避免那些会变的属性,运用不会变的属性来定位这个控件

另外,在wr中,如果上述属性都不能唯一定位一个控件
还可以控件这个控件在界面上的位置(location)或者index来定位

比如你的第一界面上
有2个控件的属性都是
{
CLASS   OBJECT
LABEL EDTATTRIBUTE
MSW_CLASS TEDIT
}
那么,你可以把第一个控件改为
CLASS   OBJECT,
LABEL EDTATTRIBUTE,
MSW_CLASS TEDIT,
location:0
}
第二个控件改为location:1
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2007-8-24 10:54:42 | 只看该作者
谢谢 已经成功定义
但回访时候还是不对
因为在GUI MAP里是attribute_11
但在录的时候成了12  ,我手动改成11依然没用
回访还是停下
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2007-8-24 11:07:16 | 只看该作者
# 挂号操作
        set_window ("挂号操作", 1);
        obj_mouse_click ("EDTEXTERIORID", 46, 12, LEFT);
        obj_type ("EDTEXTERIORID","1112111<kReturn>");
        obj_type ("EdtMedicalCardId","<kReturn>");
        obj_type ("EdtType","1<kReturn>");
        obj_type ("EdtAttribute_12","2<kReturn>");
代码
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2007-8-24 11:30:47 | 只看该作者
为什么定义好了后 用SPY看该空间 依然有ID的存在呢
是不是这样就不能在录制的时候显示成先前定义的那个控件
而依然作为另外一个控件来识别?
请高手们再指点下
谢谢拉
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2007-8-24 11:47:45 | 只看该作者
set_class_map("tedit", "edit");
        set_record_attr("tedit", "class attached_text MSW_class", "", "location");
        set_record_method("tedit", RM_RECORD);

在录制脚本之前先运行一下上面的语句
然后回放应该就不会有问题了
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2007-8-24 11:49:30 | 只看该作者
看楼主的脚本,你的程序应该使用delphi开发的吧?
去下个delphi插件装上吧,就不会出现上面的错误了
回复 支持 反对

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2007-8-24 12:55:31 | 只看该作者
不是啊 我们公司是C++、
那怎么办呢
就是脚本录制时候还是不用定义过的
回复 支持 反对

使用道具 举报

该用户从未签到

13#
 楼主| 发表于 2007-8-24 13:16:10 | 只看该作者
set_class_map("tedit", "edit");
        set_record_attr("tedit", "class attached_text MSW_class", "", "location");
        set_record_method("tedit", RM_RECORD);
但如果是打这个进去 那定义的类就是EDIT的了  但定义的是OBJECT呀
回复 支持 反对

使用道具 举报

该用户从未签到

14#
 楼主| 发表于 2007-8-24 13:21:15 | 只看该作者
解决了解决了 这里定义的那段代码应该是 LOCATION:1谢谢楼上的指点和帮忙 万分感激
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2007-8-24 17:19:30 | 只看该作者
TEDIT好像是c++ builder开发的控件,用delphi控件就能解决

另外set_class_map("tedit", "edit");
        set_record_attr("tedit", "class attached_text MSW_class", "", "location");
        set_record_method("tedit", RM_RECORD);
这几行代码的意思是把对象做了映射
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2007-8-27 15:26:18 | 只看该作者
sdlkfj3
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-25 07:01 , Processed in 0.084103 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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