这里有如下几种方式完成功能。
第一种是使用:布局找child:
是这样找的:
在android.widget.RelativeLayout下面的android:id/text1是“我的”,先找android.widget.RelativeLayout再找android:id/text1
代码如下:
- import uiautomator2 as u2
-
- d = u2.connect_usb("8681-A01-0xc60fcc9d")
- d.app_start(package_name="com.wandoujia.phoenix2")
- print("step 1")
-
- #链式定位方式
- d(className="android.widget.RelativeLayout").child(text="我的").click()
-
- print("step 2")
第二种方式进行定位:
先找android.widget.RelativeLayout再找android:id/icon,这里是第5个所以是[4]
- import uiautomator2 as u2
-
- d = u2.connect_usb("8681-A01-0xc60fcc9d")
- d.app_start(package_name="com.wandoujia.phoenix2")
- print("step 1")
-
- #链式定位方式
- #d(className="android.widget.RelativeLayout").child(text="我的").click()
-
- #完全的链式定位方法
- d(className="android.widget.RelativeLayout").child(resourceId="android:id/icon")[4].click()
-
- print("step 2")
先找这个:
再找:
第三种是找找兄弟节点:
- import uiautomator2 as u2
-
- d = u2.connect_usb("8681-A01-0xc60fcc9d")
- d.app_start(package_name="com.wandoujia.phoenix2")
- print("step 1")
-
- #链式定位方式
- #d(className="android.widget.RelativeLayout").child(text="我的").click()
-
- #完全的链式定位方法
- #d(className="android.widget.RelativeLayout").child(resourceId="android:id/icon")[4].click()
-
- #找兄弟节点
- d(resourceId="com.wandoujia.phoenix2:id/g8").sibling(resourceId="com.wandoujia.phoenix2:id/g8")[4].child(resourceId="android:id/icon").click()
-
- print("step 2")
这里是这样找的:
下标为4,也就是第5个,然后找其child,这个child通过resourceId查找,其值为android:id/icon