自动化测试之Xpath定位原创
金蝶云社区-满天星星
满天星星
1人赞赏了该文章 370次浏览 未经作者许可,禁止转载编辑于2020年07月01日 11:08:23

一、绝对路径定位


/  表示绝对路径,通过父子关系,一级一级往下定位标签。

以百度页面为例:

通过绝对路径  /html/body/div/div/div[5]/div/div/form/span/input 可以找到输入框   

div[5]表示同一层级的第5个div标签。

image.png


二、相对路径定位


//  表示相对路径  相对路径会在所有标签中去定位符合条件的标签,而不用从最顶层开始,一级一级往下找。

相对路径需要利用属性来定位

同样以百度页面为例:

//input[@id='kw'] 同样可以找到输入框


1)  @ 表示提取属性  在html中可以看到input元素中id属性值为  'kw'

2)  也可以使用其它属性 name、class都可以,但要确定根据这个属性定位到的元素是唯一的

3)  如果通过一个属性找到的元素不唯一,可以使用多个属性,需要在元素中间加and ,例如://input[@id='kw' and @name='wd']

image.png


4)  可以使用文本属性text()来定位

例如://a[text()='学术'] 

image.png


5) 如果当前元素没有能唯一识别的属性,可以先相对定位到父,再往下定位子元素

例如: //span[@id='s_kw_wrap']/input  一样是能定位到输入框


image.png


5) 模糊匹配

当属性的值只有部分是确定的时,就可以使用模糊匹配来定位

//a[contains(text(),'学术')]      匹配文本内容包含学术的a元素

//input[contains(@id,'kw')]    匹配id属性值包含kw的input元素

//*[starts-with(@id,'kw')]       匹配所有id属性值以kw开头的元素   (* 表示所有)



赞 1