Python笔记-U2控件操作和操作超时

以豌豆荚为例:

普通的操作:

import uiautomator2 as u2

d = u2.connect_usb("8681-A01-0xc60fcc9d")
d.app_start(package_name="com.wandoujia.phoenix2")
print("step 1")

# 通过多个条件来进行限定
d(resourceId="android:id/text1", text="我的").click()

print("step 2")

这里是可以的,但如果把“我的”改为“我的1”就会卡死:

通过timeout设置超时:

import uiautomator2 as u2

d = u2.connect_usb("8681-A01-0xc60fcc9d")
d.app_start(package_name="com.wandoujia.phoenix2")
print("step 1")

# 通过多个条件来进行限定
d(resourceId="android:id/text1", text="我的1").click(timeout=5)

print("step 2")

这里可以看到UiObjectNotFoundError。

下面是使用click_exist

import uiautomator2 as u2

d = u2.connect_usb("8681-A01-0xc60fcc9d")
d.app_start(package_name="com.wandoujia.phoenix2")
print("step 1")

# 通过多个条件来进行限定
#d(resourceId="android:id/text1", text="我的1").click(timeout=5)

#clicke_exists如果控件存在就点击,不存在就返回
d(resourceId="android:id/text1", text="我的1").click_exists(timeout=5)

print("step 2")

下面是通过exists属性判断控件是否存在:

import uiautomator2 as u2

d = u2.connect_usb("8681-A01-0xc60fcc9d")
d.app_start(package_name="com.wandoujia.phoenix2")
print("step 1")

# 通过多个条件来进行限定
#d(resourceId="android:id/text1", text="我的1").click(timeout=5)

#clicke_exists如果控件存在就点击,不存在就返回
#d(resourceId="android:id/text1", text="我的1").click_exists(timeout=5)

#在操作之前,通过exists属性判断控件是否存在
print(d(resourceId="android:id/text1", text="我的1").exists(timeout=5))

print("step 2")

下面是获取控件信息:

这里用python获取最下面的android.widget.LinearLayout

import uiautomator2 as u2

d = u2.connect_usb("8681-A01-0xc60fcc9d")
d.app_start(package_name="com.wandoujia.phoenix2")
print("step 1")

# 通过多个条件来进行限定
#d(resourceId="android:id/text1", text="我的1").click(timeout=5)

#clicke_exists如果控件存在就点击,不存在就返回
#d(resourceId="android:id/text1", text="我的1").click_exists(timeout=5)

#在操作之前,通过exists属性判断控件是否存在
#print(d(resourceId="android:id/text1", text="我的1").exists(timeout=5))

print(d(resourceId="com.wandoujia.phoenix2:id/a_4").child(className="android.widget.LinearLayout").child(resourceId="com.wandoujia.phoenix2:id/g8").count)

for view in d(resourceId="com.wandoujia.phoenix2:id/a_4").child(className="android.widget.LinearLayout").child(resourceId="com.wandoujia.phoenix2:id/g8"):
    print(view.info)

print("step 2")

运行截图如下:

猜你喜欢

转载自blog.csdn.net/qq78442761/article/details/107504008
U2
今日推荐