关于WR中GUI MAP的问题
现在出现一个严重的问题脚本每当运行到一EDTAttribute的地方就不动了
后来发现 用SPY看了下, 每次刷新个帐号 这个OBJECT的描述里的一格ID就变了
然后提示就是不能发现对象 不好HIGHLIGHT
请问这个问题怎么解决
谢谢 lz把这个控件的gui map描述放上来看下? 谢谢斑竹
目前的描述是这样的:
CLASS OBJECT
LABEL EDTATTRIBUTE
MSW_ID 132002
MSW_CLASS TEDIT
就说每次ID都变的 然后控件在回放时候就不能够识别
我已经用GUI CONFIGURE隐射过了 也把ID 这个选像除去但这个结果没有被保存下来啊
而且就是没用 每次回放都显示不能够识别 下周就要交测试报告了 ...帮帮忙哟 把MSW_ID 132002这个属性删掉
如果还不能认出来
试着加个location或者index属性 去掉后就不能够认出来了
具体的LOCATION INDEX该怎么写呢
不太清楚能否说明白点么? 在编程的时候,控件都会有一些属性
比如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 谢谢 已经成功定义
但回访时候还是不对
因为在GUI MAP里是attribute_11
但在录的时候成了12,我手动改成11依然没用
回访还是停下 # 挂号操作
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>");
代码 为什么定义好了后 用SPY看该空间 依然有ID的存在呢
是不是这样就不能在录制的时候显示成先前定义的那个控件
而依然作为另外一个控件来识别?
请高手们再指点下
谢谢拉 set_class_map("tedit", "edit");
set_record_attr("tedit", "class attached_text MSW_class", "", "location");
set_record_method("tedit", RM_RECORD);
在录制脚本之前先运行一下上面的语句
然后回放应该就不会有问题了 看楼主的脚本,你的程序应该使用delphi开发的吧?
去下个delphi插件装上吧,就不会出现上面的错误了 不是啊 我们公司是C++、
那怎么办呢
就是脚本录制时候还是不用定义过的 set_class_map("tedit", "edit");
set_record_attr("tedit", "class attached_text MSW_class", "", "location");
set_record_method("tedit", RM_RECORD);
但如果是打这个进去 那定义的类就是EDIT的了但定义的是OBJECT呀 解决了解决了 这里定义的那段代码应该是 LOCATION:1谢谢楼上的指点和帮忙 万分感激 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);
这几行代码的意思是把对象做了映射 sdlkfj3
页:
[1]