1.一种基于web元素属性特征的定位方法,其特征在于:所述web元素定位方法根据不同元素最优化选择特征属性值,利用特征属性值构建目标元素xpath查询字符串,其中,web元素定位方法包括以下几个步骤:
步骤一:根据目标元素不同类型,确定需要验证的属性名称;
步骤二:获取目标元素的特征值;
步骤三:根据元素特征值构建xpath。
2.根据权利要求1所述的一种基于web元素属性特征的定位方法,其特征在于:所述步骤一中,在确定需要验证的属性名称时,先把元素属性分为通用属性以及专有属性,其中:
通用属性是指html元素普遍存在并经常被使用的属性,具体如下:id:元素id属性字段,该属性规定了元素的唯一标识符;name:元素name字段,该属性规定了元素的名称;title:元素title字段,常用来解释元素的使用用途,当鼠标悬停在元素上面时,提示框显示的文本;text:元素内部的文本;
专有属性是指根据不同的元素类型,读取元素特有的属性,具体如下:
inputhtmlelement元素专有属性:type:用来表明该input元素用于输入的内容或者是否是表单提交等操作;
imghtmlelement元素专有属性:src:该属性规定了嵌入图片的文件路径;alt:该属性规定了对图像的文本描述,在图片无法呈现时的替代文本或者用于屏幕阅读器将这些描述读给使用者听;
iframehtmlelement元素专有属性:src:内嵌的页面地址;
ahtmlelement元素专有属性:href:包含超链接指向的url或url片段;target:指定在何处显示链接的资源;
最终根据目标元素通用属性以及专有属性可以获得该元素属性数组arrlist。
3.根据权利要求1所述的一种基于web元素属性特征的定位方法,其特征在于:所述步骤二中获取目标元素的特征值的具体流程包括:
(1)构建一个目标元素特征属性amap,以及一个整数count,用来记录全局中通过当前amap可以匹配到的元素个数,初始值为无限大;
(2)逐一从attrlist中获取当前的属性名称k,获取到当前元素属性名称k所对应的值v,加入到amap中;全局查找可以匹配amap中所有属性的元素,记录下当前满足条件的元素数量n,如果此时n的值并未小于count,表明当前属性k的加入并没有使目标元素定位更加精确,此时需要从amap中删除属性k以及对应的v;否则更新count的值为当前满足条件的元素个数n;循环执行本步骤,直至遍历完attrlist中所有属性,或者通过amap中的属性只可以唯一匹配到目标元素;
(3)检查count字段,如果该字段为1,则表明通过amap可以唯一定位到目标元素,此时的amap中的属性值即为该目标元素的特征值;如果该字段大于1,则表明页面中满足amap中的属性值还有其他元素,此时需要进一步增加特征值,来唯一确认目标元素,这里采用基于dom树结构的深度遍历算法,获取所有满足amap属性值的元素列表elementarray,记录下目标元素位于elementarray中的位置索引index,此时index连同amap中所有属性值可以作为目标元素的特征值。
4.根据权利要求1所述的一种基于web元素属性特征的定位方法,其特征在于:所述步骤三中,xpath指的是xml路径语言,xml路径语言可以用于检测文档中某个节点是否与某个模式(pattern)匹配,xpath提供丰富的函数,可以灵活的支持多重属性匹配,而且主流浏览器中均支持xpath。
5.根据权利要求1所述的一种基于web元素属性特征的定位方法,其特征在于:所述步骤二中获取的元素属性特征值,构建目标元素的xpath字符串,该xpath是基于元素的属性获取的定位特征值,在html页面结构发生变化后,也可以很稳定的定位到目标元素。
6.根据权利要求1所述的一种基于web元素属性特征的定位方法,其特征在于:所述步骤一和步骤二选择特征明显的元素作为锚点元素,产生属性特征集合,在步骤三根据锚点元素到目标元素的相对位置来产生xpath唯一定位目标元素。