AppiumLibrary的获取元素基础方法和api见官方文档
xpath:
appium里的xpath也是遵循xpath基本语法的,xpath的基本教程可见w3school网站。
我要用到xpath的时候,基本是两种情况,一是该元素里没有其他唯一的属性来定位的情况,第二种情况是已定位到一个元素,需要依据该元素来定位其父节点、兄弟节点或子孙节点的情况。
第一种情况:

# 元素不唯一,用xpath指定元素
click element xpath=//android.widget.ListView/android.widget.LinearLayout[3]/descendant::android.widget.ImageView[@resource-id='com.innotek.goodparking:id/cb_pay']
第二种情况:

# 通过定位到的车牌元素,获取该元素的父节点的父节点下的金额元素
click element xpath=//android.widget.TextView[@text='浙TEST85']/../../descendant::android.widget.TextView[@resource-id='com.innotek.goodparking:id/tv_countfee']
# 上面父节点用"../"表示,也可以用"parent::"表示,如下
click element xpath=//android.widget.TextView[@text='浙TEST85']/parent::android.widget.RelativeLayout/parent::android.widget.LinearLayout/descendant::android.widget.TextView[@resource-id='com.innotek.goodparking:id/tv_countfee']
附录:XPath的轴
轴名称 | 结果 |
---|---|
ancestor | 选取当前节点的所有先辈(父、祖父等) |
ancestor-or-self | 选取当前节点的所有先辈(父、祖父等)以及当前节点本身 |
attribute | 选取当前节点的所有属性 |
child | 选取当前节点的所有子元素。 |
descendant | 选取当前节点的所有后代元素(子、孙等)。 |
descendant-or-self | 选取当前节点的所有后代元素(子、孙等)以及当前节点本身。 |
following | 选取文档中当前节点的结束标签之后的所有节点。 |
namespace | 选取当前节点的所有命名空间节点 |
parent | 选取当前节点的父节点。 |
preceding | 直到所有这个节点的父辈节点,顺序选择每个父辈节点前的所有同级节点 |
preceding-sibling | 选取当前节点之前的所有同级节点。 |
self | 选取当前节点 |
网友评论