QTP中Flex控件无法正常录制的解决说明
问题背景:
V5部分模块的前台界面里存在一些拥有点击事件的Lable标签,而由于qtp中flex插件的原因,在qtp进行录制时,会导致某些控件在点击时无法进行正常记录(无法记录或者错误记录),从而导致自动化测试中断或者出错。
具体问题分析:
1、 录制时出现错误脚本的情况:
Browser("XXXX.raq").SparkApplication("mygrid").FlexBox("insertvbox").FlexMenuBar("mb_insert").Show"超链接"
如上截图所示,在自定义复杂报表中,当点击“超链接”这个Lable标签时,qtp会自动生成如上所述代码,仔细查看这段代码的最后可以发现,它其实执行的不是一个Click()事件,而是Show()方法,这种情况我们就需要修改脚本,否则会因为此步骤中的点击动作未执行而导致后续动作失败。
PS:上述操作的正确脚本应该为:Browser("10849.raq").SparkApplication("mygrid").FlexBox("insertvbox").FlexMenuBar("mb_insert").FlexListLabel("超链接").Click
2、 无法录制的情况:
如上截图所示,当点击页面上的“百度”这个Lable标签时,产品会弹出“关联参数设置”这个对话框,但当录制点击这个操作时,qtp是不会自动生成该句脚本代码的,相当于这步操作没有录制上,同样,回放时就会出现后续操作失败的情况。
解决方法:
qtp录制时如果出现上述情况,就需要手动进行调整了,具体流程为:
1、首先确保不能录制或者录制出错的控件是能够被对象探测器识别到的。
2、在对象库里手动添加不能录制的对象,其中对象的获取方式类似于对象探测器的使用方式。
3、根据探测到的对象属性,书写脚本代码。
图解:
对象探测器的使用:
按图示操作后,点击页面上的对应控件即可进行探测
在对象库里手动添加对象:
在对应脚本中,按图示进入对象库并点击添加对象按钮,即进入类似于对象探测的界面,选中要添加的控件后默认添加即可
代码的书写规则:
以“无法录制的情况”中的“百度”按钮为例,先使用探测器识别,得到如图所示的树形属性列表
之后根据该属性列表进行代码编写,
Browser("新建报表_zhangsan_15UNSAVED.raq").
SparkApplication("mygrid").
SparkTitleWindow("超链接设置").
SparkSkinnableContainer("linktab").
SparkNavigatorContent("index:3").
FlexLabel("百度").Click
根据上述代码不难发现,脚本的编写,其实就是对探测到的对象属性按一定规则进行书写并在最后加上动作方法,而这个规则就是将对象的各属性用“.”进行连接,并将属性值写入到对应的(””)中原文地址:http://blog.csdn.net/u011427934/article/details/24439613