### 关于WinRunner处理不识别对象的四种方法
在软件测试领域,自动化测试工具的应用越来越广泛,其中WinRunner是一款老牌且功能强大的自动化测试工具。在实际应用过程中,经常会遇到WinRunner无法识别某些对象的情况,这可能会严重影响自动化测试的效率与准确性。本文将详细介绍在WinRunner中处理此类问题的四种有效方法。
#### 一、加载相关插件
**方法原理**:
加载相关的插件是解决WinRunner不识别对象问题最快速、最有效的手段之一。这是因为不同的应用程序或界面元素可能需要特定的插件来支持其识别和交互。
**操作步骤**:
1. **启动WinRunner时选择插件**:当启动WinRunner时,会弹出一个插件选择窗口,可以根据需求选择相应的插件。
2. **手动加载插件**:如果启动时不显示插件选择窗口,可以在WinRunner的主界面通过`Tools -> General Options -> Startup`中的`Display Add-in Manager`选项勾选,这样下次启动WinRunner时就会弹出插件加载提示。
#### 二、对象映射
**方法原理**:
对象映射是一种让WinRunner能够识别特定对象的方法,通过定义对象的特征及其在界面上的位置来实现。
**操作步骤**:
1. **添加对象映射**:在WinRunner的主界面中选择`TOOLS -> Gui Map Configuration -> Add`,然后使用手形按钮指向需要映射的对象并点击。
2. **配置映射对象**:完成添加后,回到`Gui Map Configuration`界面点击`Configure`,在`Configure Class`界面中对映射的对象进行配置,如指定目标对象类等。
3. **保存映射脚本**:将`Generated TSL Script`中的内容复制到测试工程的初始化代码文件中,这样即使更换WinRunner环境也不需要重新配置。
**注意事项**:
- 映射的对象需具备目标对象类的基本特征;
- 建议删除MSM-ID属性,因为它容易变化导致脚本回放失败。
#### 三、自定义函数
**方法原理**:
自定义函数是一种灵活的方式,通过编写特定的函数来实现对对象的操作。通常涉及相对坐标定位和键盘模拟操作。
**示例代码**:
```tsl
public function Obj_LClick(in win,in obj) {
auto obj_width,obj_height;
set_window(win);
obj_get_info(obj,"width",obj_width);
obj_get_info(obj,"height",obj_height);
obj_mouse_click(obj,int(obj_width/2),int(obj_height/2),LEFT);
}
```
此示例函数用于实现对指定对象的左键点击操作。通过获取对象的宽度和高度,并计算出中心点的位置,再利用`obj_mouse_click`函数进行点击。
#### 四、自定义插件/构建虚拟对象
**方法原理**:
自定义插件是通过编写DLL来扩展WinRunner的功能,适用于其他方法均无效的情况。构建虚拟对象则是在软件中创建一个替代对象,用于模拟真实对象的行为。
**操作步骤**:
1. **编写DLL**:当遇到WinRunner无法通过常规方式识别对象时,可以通过编写DLL的形式扩展其功能。这种方式技术门槛较高,需要具备较强的Windows底层编程能力。
2. **构建虚拟对象**:若自定义插件方案实施困难,可考虑构建虚拟对象。这种方法虽然移植性较差,但在其他方案均无效时是一个可行的选择。
**总结**:
以上介绍了在WinRunner中处理不识别对象问题的四种方法,每种方法都有其适用场景和技术难度。建议按照“加载插件 > 对象映射 > 自定义函数 > 自定义插件/构建虚拟对象”的顺序尝试,以找到最合适的解决方案。