ui自动化中八大元素定位方式之一 xpath定位
1.xpath语法
表达式 | 作用 |
---|---|
nodename | 标签名,选取此层级节点下的所有子节点 |
/ | 代表从根节点进行选取 |
// | 可以理解为匹配,就是在所有节点中选取此节点,直到匹配为止 |
. | 选取当前节点 |
… | 选取当前节点上一层(上一级目录) |
@ | 表示要选取的属性(也是匹配) |
- 不想指定标签名称,可以用*号表示任意标签,
//*[@id='kw']
- 指定某个标签,
//input[@id='kw']
2.xpath逻辑运算定位
可以支持与(and)、或(or)、非(not),常用的是and组合条件定位。
比如查找id=kw并且name=wd的 //input[@id='kw' and name='wd']
3.层级条件定位
如果一个元素,它的属性不是很明显,无法直接定位到,这时候我们可以先找它的父元素,找到父元素后,再找下个层级就能定位到了
如百度的定位,要定位的是input这个标签,它的父元素的class="bg s_ipt_wr new-pmd quickdelete-wrap"。 //*[@class="bg s_ipt_wr new-pmd quickdelete-wrap"]/input
要是父元素的属性也不是很明显,就找祖先id=form,就可以通过层级关系定位到 //form[@id="form"]/span[1]/input
4.索引定位
上面的//form[@id="form"]/span[1]/input 这个定位即使用了索引定位,form下的span标签有多个,使用索引定位到具体的标签。注意:索引的下标是从1开始的 而不是0
5.文本定位text()
通过标签中的text文本来定位元素
//a[text()="文库"]
文本定位经常和contains一起使用,模糊匹配,从字面就能知道是包含文本,有些文本内容可能过长,只需要包含特定的即可。