在描述性编程中,一般选取一两个可唯一识别对象的属性来描述;
在自己编写脚本的过程认为有几点是需要注意的:
1、填写属性值时要用add objs 将对象添加到对象库中然后再复制属性值到脚本中,不要直接自己写,有时看起来一样,但两个字中间的空格可能不一样,
符号中英文全角半角区分等;
2、当直接复制的属性值放到脚本里执行时仍然无法识别时,就看一看属性值中是否有中文符,如果有要加上转义字符;
例如:webelement对象的innertext值为“非营业客车(企业)”
直接写成WebElement("innertext:=非营业客车(企业)")是无法识别的
要改为WebElement("innertext:=非营业客车\(企业\)")
browser、page一般使用title或URL,WebEdit一般使用name,WebButton一般使用name或text,Link一般用text,当页面上多个相同类对象时就加上一个index来做区别。
普通的标准对象用一两个通用属性即可识别,但是部分自定义的对象就要想想办法了,一般web页面里对象无法识别时QTP就会将其识别为WebElement,普通的WebElement
用innertext+html id/html tag 即可,但有的WebElement这些属性都是空,或者就是非空写了也不能识别,这时有两个方法可以尝试一下:
1、尝试使用source_index这个属性来识别
先用QTP录制一下该对象,然后用GetRoProperty获得source_index属性值,再将属性和值写入到脚本中;
注:该方法可以暂时解决WebElement无法识别的问题,但是该属性值并不是永远不变的,这点要注意,如果以前可以运行
的脚本不能执行了,可先查看一下是不是该值有变化了。
2、用其父对象来间接操作该子对象;
例如WebElement是写在一个webtable里的,可以先将webtable识别出来,再通过childobjects和childitem来识别,详细见《QTP获取WEBTABLE单无格中的对象》