QTP无法识别对象的解决办法

对qtp无法识别对象的解决办法很多,现使用到的有以下五种:


  
1.低级录制(不建议使用)


  
2.虚拟录制(慎重使用)


  
3.描述编程


  
4.对象映射


  
5.objectidentification


  
详解


  
1:低级录制


  
automation->lowlevelrecording/anlogrecording,记录屏幕的相对位置,维护性比较差


  
2:虚拟录制


  
tools->virtual objects->new virtual object/virtual object manager


  
new virtual object:新建虚拟对象


  
virtual object manager:对已经建立的虚拟对象的管理


  
新建虚拟对象:new virtual object->next->选择虚拟对象(object,button,table,list,check box,radio button)->next->mark object...(标记需要虚拟的对象)->next(标识所有出现的虚拟对象,请选择“parent only”;仅标识一次出现的虚拟对象,请选择“entire parent hierarchy";默认选择“parent only”)->next(指定虚拟对象的名称和集合)->完成


  
注:a:可以通过virtual object manage来管理(添加/删除)虚拟对象


  
b:如果希望quicktest在录制时识别虚拟对象,请确保清除“选项”对话框的“常规”选项卡中的“录制时禁止识别虚拟对象”复选框(tools->options->general->uncheck(disable recognition of virtual objects while recording))


  
3:描述性编程


  
用描述性编程来优化脚本时,刚开始有点麻烦,成型后可以解决很多实际问题,比如:控件不识别,动态识别控件等等。平时录制脚本时,qtp会自动生成一个对象库,来定位识别对象,如果对象库管理不善,比如丢失等等意外潜在因素,会造成脚本因对象无法识别而失败;而描述性编程,直接用对象的唯一性属性来定位对象,脱离了对象库概念,解决了潜在因素,而且使用起来也很灵活,缺点是识别对象的速度比录制识别对象的速度要慢很多。个人认为,有时候牺牲一些性能来提高稳定性是有必要的。


  
使用方法:


  
a:直接使用:browser("name:=xxxx").page("title:=xxxxx")....


  
browser("name:=xxxx","title:=xxxx",.....).page("title:=xxxxx","htm id:=xxxxx",...)....


  
b:间接使用


  
dim des


  
set des =description.create


  
des("name").value="xxxxx"


  
des("title").value="xxxx"


  
browser(des).page("title:=xxxxx","htm id:=xxxxx",...)....


  
具体在开发时使用哪种自己来调度,这里需要注意的是,父对象描述化了,子对象可以随便,但是子对象描述化了,父对象一定要描述化。


  
4:对象映射和objectidentification


  
tools->object identification->user-deined..(标准对象的映射)


  
->在这个界面上可以更改对象的识别属性,可以解决一些对象不识别的问题,具体的可以试试
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值