天天看点

selenium自动化之xpath元素定位

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开头的元素