uiautomator2 操作

1、滚动操作:scroll

# 垂直滚动到页面顶部/横向滚动到最左侧
d(scrollable=True).scroll.toBeginning()
d(scrollable=True).scroll.horiz.toBeginning()
# 垂直滚动到页面最底部/横向滚动到最右侧
d(scrollable=True).scroll.toEnd()
d(scrollable=True).scroll.horiz.toEnd()
# 垂直向后滚动到指定位置/横向向右滚动到指定位置
d(scrollable=True).scroll.to(description="指定位置")
d(scrollable=True).scroll.horiz.to(description="指定位置")
# 垂直向前滚动(横向同理)
d(scrollable=True).scroll.forward()
# 垂直向前滚动到指定位置(横向同理)
d(scrollable=True).scroll.forward.to(description="指定位置")

2、滑动操作:swipe

# 从sx,sy坐标滑动至ex,ey坐标
# d.swipe(sx, sy, ex, ey)
d.swipe(0,0,10,10)

3、拖拽操作:drag

# 从sx,sy坐标拖拽至ex,ey坐标
# d.drag(sx, sy, ex, ey)

d.drag(12,25,100,120)

4、禁止弹窗

d.disable_popups() #自动跳过弹出窗口 
d.disable_popups(假)#禁用自动跳过弹出窗口

5、等待activity出现

d.wait_activity('com.test.ui.activities.MainActivity', timeout=10)

6、除了某个应用外其余全部关闭

d.app_stop_all(excludes=['com.examples.demo'])

7、停止所有应用

d.app_stop_all()

8、停止应用,这个方法会丢失应用数据

d.app_stop("com.example.app")

9、停止应用

d.app_clear('com.example.hello_world')

10、启动此应用前,关闭这个应用

d.app_start("com.example.app", stop=True)

11、获取前台应用的packageName, activity

d.app_current()

12、启动应用(默认的这种方法是先通过atx-agent解析apk包的mainActivity,然后调用am start -n $package/$activity启动)

d.app_start("com.example.app")

13、通过指定main activity的方式启动应用,等价于调用am start -n com.example.hello_world/.MainActivity

d.app_start("com.example.hello_world", ".MainActivity")

14、得到app图标

img = d.app_icon("com.examples.demo")
img.save("icon.png")

15、列出所有运行中的应用

d.app_list_running()

16、确定app是否启动,也可以通过Session来判断

pid = d.app_wait("com.example.android") # 等待应用运行, return pid(int)
if not pid:
    print("com.example.android is not running")
else:
    print("com.example.android pid is %d" % pid)

d.app_wait("com.example.android", front=True) # 等待应用前台运行
d.app_wait("com.example.android", timeout=20.0) # 最长等待时间20s(默认)

or
d.wait_activity(".ApiDemos", timeout=10) # default timeout 10.0 seconds

Session操作

一般用于测试某个特定的APP,首先将某个APP设定为一个Session,所有的操作都基于此Session,当Session退出时,代表APP退出
posted on   没有陌生人  阅读(617)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示