(五)Appium定位方式二-----XPath定位
1.Xpath介绍
这一篇主要说一下XPath定位方式,XPath 是一门在 XML 文档中查找信息的语言。
XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的。
以下面的例子为例:
1.1 选取节点
XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。 下面列出了最有用的路径表达式:
下面举例一些路径表达式的具体用法和含义:
1.2 谓语
谓语用来查找某个特定的节点或者包含某个指定的值的节点。
谓语被嵌在方括号中。
在下面的表格中,我们列出了带有谓语的一些路径表达式,以及表达式的结果:
1.3 选取未知节点
XPath 通配符可用来选取未知的 XML 元素。
在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果:
1.4 选取若干节点
通过在路径表达式中使用"|"运算符,您可以选取若干个路径。
在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果:
2.Xpath定位
上面大概列举了一些Xpath的语法,现在开始举例Xpath定位,如果上一篇介绍的元素定位方式还是定不到的话,可以采用Xpath定位的方式来定位。
格式:find_element_by_xpath(“元素路径”)
元素路径的格式://classname[@=’’],@后面是属性
Classname[contains(@,’’)],@后面是属性,逗号后面是属性具体值
2.1通过id定位
例如:定位到下图红框所标识的位置
albumtab=driver.find_element_by_xpath("//android.widget.TextView[@id='com.android.music:id/artisttab']")
具体代码如下:
其他通过属性来定位的,基本都可通过这种方式
其实Xpath定位主要是可以使用元素的绝对路径和相对路径来定位,绝对路径太长了,不太建议使用;比较推荐使用的是绝对路径,上面的例子是通过相对路径来定位的