基础界面自动化

获取设备信息

d.device_info()

息屏、亮屏

# 息屏
d.sleep()
# 亮屏
d.wake_up()
# 屏幕是否点亮
d.is_screen_on()
# 屏幕是否已锁定
d.is_screen_locked()

显示 Toast 消息

d.show_toast("Hello from Lamda!")

读写剪切板

d.set_clipboard("剪切板内容")

# 获取剪切板内容(不支持安卓10+)
d.get_clipboard()

物理按键

# 此方法可使用如下17种按键
# KEY_BACK
# KEY_CAMERA
# KEY_CENTER
# KEY_DELETE
# KEY_DOWN
# KEY_ENTER
# KEY_HOME
# KEY_LEFT
# KEY_MENU
# KEY_POWER
# KEY_RECENT
# KEY_RIGHT
# KEY_SEARCH
# KEY_UP
# KEY_VOLUME_DOWN
# KEY_VOLUME_MUTE
# KEY_VOLUME_UP
d.press_key(Keys.KEY_BACK)

# 同时为了可以使用更多按键,也可以使用这个方法
d.press_keycode(KeyCodes.KEYCODE_CALL)
# 可使用的 KEYCODE 可以自行查看此文档
# https://developer.android.com/reference/android/view/KeyEvent#KEYCODE_0

屏幕截图

quality = 60 # 截图质量,默认为全画质
d.screenshot(quality).save("screenshot.png")
# 截取屏幕上特定区域的图像
# Bound 的参数 top,left 等定义:

# top:     从距离屏幕顶部向下数 top 个像素
# bottom:  从距离屏幕顶部向下数 bottom 个像素
# left:    从距离屏幕左侧向右数 left 个像素
# right:   到距离屏幕左侧向右数 right 个像素

# 正常情况下 top 永远小于 bottom,left 永远小于 right
bound = Bound(top=50, bottom=80, left=50, right=80)
d.screenshot(quality, bound=bound).save("partial.png")

点击屏幕上的一个点

d.click(Point(x=100, y=100))

点按点A并将其拖动到点B

A = Point(x=100, y=100)
B = Point(x=500, y=500)

d.drag(A, B)

从点A滑动到点B

A = Point(x=100, y=100)
B = Point(x=500, y=500)

d.swipe(A, B)

稍复杂的多点滑动(九宫格解锁)

p1 = Point(x=100, y=100)
p2 = Point(x=500, y=500)
p3 = Point(x=200, y=200)

# 从点P1滑动到点P2随后滑动到点P3,可任意个点
d.swipe_points(p1, p2, p3)

打开通知栏、快捷设置

d.open_notification()
d.open_quick_settings()

获取页面布局

d.dump_window_hierarchy().getvalue()

等待界面刷新完毕

# 单位是毫秒,5*1000 代表5秒
d.wait_for_idle(5*1000)

获取最近的 toast

d.get_last_toast()