session
session代表应用程序生命周期,可用于启动应用程序,检测应用程序崩溃。
- 启动并关闭应用
sess = d.session("com.netease.cloudmusic") # 启动网易云音乐
sess.close() # stop网易云音乐
sess.restart() # 冷启动网易云音乐
- 使用Python中的
with...as...
语句启动和关闭app
# d.session()方法的返回值赋值给sess,然后sess就可以去操作一些应用内的方法
with d.session("com.netease.cloudmusic") as sess:
sess(text="Play").click()
- 应用程序正在运行相关
# 如果App未运行,就运行App。如果已运行,就跳过
sess = d.session("com.netease.cloudmusic", attach=True)
# 加上stritct=True参数后,如果App未运行,抛出SessionBrokenError异常
sess = d.session("com.netease.cloudmusic", attach=True, strict=True)
- 检测应用崩溃
# app正在运行时,操作一切正常
# app crash或退出时,抛出SessionBrokenError。且不仅仅是click(),会话下的其他函数调用也会引发SessionBrokenError
sess = d.session("com.netease.cloudmusic")
sess(text="Music").click
- 检查session是否ok
# 函数名可能在之后会改变
sess = d.session("com.netease.cloudmusic")
sess.running() # 返回True或False
设备信息相关
- 获取基本信息:d.info
下图是可能的输出
{
u'displayRitation:0, # 旋转
u'displaySizeDpY': 640,
u'displaySizeDpX': 360,
u'currentPackageName': u'com.android.launcher',
u'productName': u'takju',
u'displayWidth': 720,
u'sdkInt': 18,
u'displayHeight': 1184,
u'naturalOrientation': True
}
- 获取窗口大小:
d.window_size()
print(d.window_size())
# 设备直立输出:(1080,1920)
# 设备水平输出:(1920. 1080)
- 获取当前的应用信息(对于某些android设备,输出可能为空)
print(d.app_current())
# 输出1:{'activity': '.Client', 'package': 'com.netease.example', 'pid': 23710}
# 输出2: {'activity': '.Client', 'package': 'com.netease.example'}
# 输出3: {'activity': None, 'package': None}
- 等待activity
d.wait_activity(".ApiDemos", timeout=10) # 第一个参数是activity名,第二个参数是等待的时间。默认等待时间是10s
- 获取设备序列号
print(d.serial)
# 输出eg:74aAEDR428Z9
- 获取wlan ip
print(d.wlan_ip)
# 输出eg:10.0.0.1
- 获取设备详细信息
print(d.device_info)
# 可能的输出
{
'udid': '3578298f-b4:0b:44:e6:1f:90-OD103',
'version': '7.1.1',
'serial': '3578298f',
'brand': 'SMARTISAN',
'model': 'OD103',
'hwaddr': 'b4:0b:44:e6:1f:90', # mac地址
'port': 7912,
'sdk': 25,
'agentVersion': 'dev',
'display': {'width': 1080, 'height': 1920},
'battery': {'acPowered': False,
'usbPowered': False,
'wirelessPowered': False,
'status': 3,
'health': 0,
'present': True,
'level': 99,
'scale': 100,
'voltage': 4316,
'temperature': 272,
'technology': 'Li-ion'},
'memory': {'total': 3690280, 'around': '4 GB'},
'cpu': {'cores': 8, 'hardware': 'Qualcomm Technologies, Inc MSM8953Pro'},
'presenceChangedAt': '0001-01-01T00:00:00Z',
'usingBeganAt': '0001-01-01T00:00:00Z'
}
- 剪贴板
设置剪贴板内容或获取内容
d.set_clipboard('text','label')
print(d.clipboard)