xpath:
即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。
语法:
表达式 | 描述 |
---|---|
nodename | 选取此节点的所有子节点。 |
/ | 从根节点选取。 |
// | 从匹配选择的当前节点选择文档中的节点,考虑它们的位置。 |
. | 选取当前节点。 |
… | 选取当前节点的父节点。 |
@ | 选取属性。 |
xpath定位:
一种基于元素路径查找元素的定位方式
driver.find_element_by_xpath("xpath元素")
Xpath常用定位策略
路径:
绝对路径:单斜杠(/)开头逐级编写,如:/html/body/div/div/input
相对路径:双斜杠(//)开头,确定某个元素即直接写,全部元素为*
如:
//input
//*
注意:
无论绝对路径还是相对路径,/后面必须跟元素的名称或者*
路径与属性
以元素的属性来定位这个元素,如://*[@属性= “属性值”]
@用来修饰元素的属性
路径与逻辑
即为多个路径用逻辑关系方法结合到一起
如://*[@属性1 =‘属性值1’ and @属性2 = ‘属性值2’]
路径结合层级
利用父级,子级来定位元素
如://*[@父级属性 = ‘父级属性值’]/子级
## Xpath扩展
//*[text() = ‘xxx’] 定位文本值为XXX的元素
//*[contains(@属性,‘XXX’)] 定位属性值为XXX的元素
//*[starts-with(@属性,‘XXX’)] 定位属性值以XXX开头的元素