# 垂直滚动到页面顶部/横向滚动到最左侧
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退出