在uiautomator2开发中,有时候无法根据元素现有的单一属性定位到元素,此时需要用到xpath方式获取元素,但是有时通过刷界面获取到的xpath又无法使用,那可以尝试自己拼接,这里主要记录XPATH的拼接方法
实例:
父级目录:
父级目录可以与其他同属性的元素区分
需要获取到IMEI1的值,但是resourceId等其他元素都不唯一,界面提供的XPTAH建议也不能用,但是发现它的父类唯一,因此可以通过层级目录拼出元素的xpath
第一种用resourceId拼出的xpath是
'//android.widget.LinearLayout[1]/*[@resourceid="com.android.dialer:id/deviceid_hex"]'
第二种用className拼出的xpath是:
"//*[@resourceid='com.android.dialer:id/deviceids_holder']/android.widget.LinearLayout[1]/android.widget.TextView"
注意:
- 以上两种用法都验证是正确的,可以自由拼接选择
- resourceid前后格式为其在xpth中的固定用法,否则会报错