crystalpear 发表于 2009-2-3 09:37:57

各对象的识别属性

大家新年好!
目前遇到一个对象识别所需要的属性范围问题。比如有些对象用html id属性就可以唯一识别到,可是有些对象就没有html id属性,这样子就必须用其它的属性来识别,
可能有的用一个属性就可以识别到,有些就必须要用多个结合起来识别!
我想问一下大家,根据大家的经验来看,哪些属性是最常用于识别对象的?
谢谢大家分享自己的经验!!

asoqa 发表于 2009-2-3 10:07:24

1.有的属性可以用于QTP的对象识别,有些是不可以的,具体参考对应对象的帮助。
2.我通常用的是html id、name、class、innertext、value,当然根据对象识别属性的不同有所取舍。
3.每个对象其实都对应html的一个元素,html是一种结构化文档,也就是说即使对象属性相同,路径也会不同。这样可以通过childobjects一层层的找到你要的对象。
4.如果路径和对象属性完全相同,只能通过index来区别了。

crystalpear 发表于 2009-2-3 10:42:56

谢谢asoqa提供的信息。
其实我们是在解析QTP对象库导出的xml中遇到这个问题的。如果纯粹用QTP的提供的基本属性来识别,就会出现部分对象中所提供的基本属性是不够的,但如果有加上smart属性来识别,又显得多了,识别对象的速度又变慢,有时候属性多了,在描述性编程中反而变成识别不到对象。
这是个很头痛的问题。目前似乎无法找到一个合理的范围来限制属性的个数。

asoqa 发表于 2009-2-3 11:17:26

确实如你所说,对象识别时的属性相对灵活,如果一定要圈定一些属性来识别,会发现非常困难。有的类型比较容易,例如Browser、Page对象可以通过title和creationtime就能识别;有的类型就很困难,例如WebTable、WebElement,一个页面上会有很多WebTable,而一般的开发代码很少在table标签加上可供识别的属性,导致最后只能根据index识别;而WebElement是一种通用对象,可能对应DIV,可能对应SPAN,可能对应TR等等,这些html 元素本身的属性就是有区别的,因此也很难统一用一套属性识别。
如果要达到你想要的效果,最好是能保证你测试的应用代码有规范完善的命名规则,这样可以通过id,name这些通用的属性识别,这是需要开发配合的。
不知道大家有没有别的好主意。

[ 本帖最后由 asoqa 于 2009-2-3 11:24 编辑 ]
页: [1]
查看完整版本: 各对象的识别属性