动作
动作(action)包中,包含了点击、滑动、输入、手势等操作.
用来模拟人手操作设备.
Android版本限制
动作模块需 >= Android 7.0
点击 
# 导包
from airscript.action import click
- click()
点击屏幕某个位置
#案例
# 导包
from airscript.action import click
# 点击坐标 x=100,y=200 的位置
click(100,200)
# 点击坐标 x=100,y=200 的位置,按压3000ms 后释放
click(100,200,3000)
- click()
#案例
# 导包
from airscript.action import click
from android.graphics import Point
# 点击坐标 x=100,y=200 的位置
p = Point(100,200)
click(p)
# 点击坐标 x=100,y=200 的位置,按压3000ms 后释放
p = Point(100,200)
click(p,3000)
滑动 
# 导包
from airscript.action import slide
slide()
模拟手指滑动
#案例
# 导包
from airscript.action import slide
# 从(100,200) 滑动到 (300,400) 滑动时间默认20毫秒
slide(100,200,300,400)
# 从(100,200) 滑动到 (300,400) 滑动时间为3000毫秒
slide(100,200,300,400,3000)
触摸 
# 导包
from airscript.action import touch
触摸提示
一个完整的触摸动作,必须包含三个部分(按下,移动,抬起)
触摸 - 按下
touch.down()
在屏幕上某坐标 按下
触摸 - 移动
touch.move()
移动到指定坐标.
触摸 - 抬起
touch.up()
从指定坐标 抬起
一个完整的触摸
#案例
# 导包
from airscript.action import touch
# 从坐标(100,200)的位置按下
touch.down(100,200)
# 按下的同时,移动到坐标(300,300)
touch.move(200,300)
# 按下的同时,再次移动到坐标(400,350),移动用时 1000毫秒
touch.move(400,600,1000)
# 移动至坐标(450,400)位置 抬起
touch.up(450,400)
手势 
#导入手势包
from airscript.action import gesture
#导入手势辅助包 - 路径
from airscript.action import path
模拟复杂的人手操作
如:单指画圆、双指捏和、多指操控等.
手势-创建路径
path()
创建一个新的path路径
路径的规划决定手势如何移动
手势-路径方法
path 实现了 android.graphics.Path 中的大部分方法.
# 一个简单的 路径规划案例
#导包
from airscript.action import gesture
from airscript.action import path
# 创建一个新的path路径,延迟执行0ms,总时长1000ms
line1 = path(0,1000);
# 移动初始点
line1.moveTo(500,200)
# 画直线到点
line1.lineTo(500,500)
# 使用二次贝塞尔曲线 从点(500,800) 到 (250,900)
line1.quadTo(500,800,250,900)
手势执行
gesture.perform()
#案例1:执行一组动作,分别模拟两个手指同时操作
# 导包
from airscript.action import gesture
from airscript.action import path
# 创建一个新的path路径 模拟 手指1
line1 = path();
line1.moveTo(200,200)
line1.lineTo(200,500)
# 创建另一个新的path路径 模拟 手指2
line2 = path(0,1200);
line2.moveTo(500,200)
line2.lineTo(500,500)
# 执行 这一组动作
gesture.perform(line1,line2)
#案例2,执行一组动作,分别模拟两个手指同时操作,并监听动作是否执行结束
# 导包
from airscript.action import gesture
from airscript.action import path
# 创建一个新的path路径 模拟 手指1
line1 = path(0,1000);
line1.moveTo(200,200)
line1.lineTo(200,500)
# 创建另一个新的path路径 模拟 手指2(*第二条路径相对于第一条,会延迟500ms启动)
line2 = path(500,1200);
line2.moveTo(500,200)
line2.lineTo(500,500)
class listener:
def onCompleted():
print("结束了")
def onCancelled():
print("被中断取消了")
# 执行 这一组动作
gesture.perform([line1,line2],listener)
#案例3:连续 执行两个Path路径,中途不松手指
# 导包
from airscript.action import gesture
from airscript.action import path
# 创建一个新的path路径 模拟 手指1
line1 = path(0,1000,True);
line1.moveTo(200,200)
line1.lineTo(200,500)
# 创建另一个新的path路径 模拟 手指2
line2 = path(1000,500);
line2.moveTo(200,500)
line2.lineTo(500,500)
class listener:
def onCompleted():
gesture.perform(line2)
def onCancelled():
print("被中断取消了")
gesture.perform([line1],listener)
输入 
# 导包
from airscript.action import input
input()
在‘文本输入框控件’中输入文本
#案例1: 在当前获取焦点的,输入框中输入文本
# 导包
from airscript.action import input
# 输入文本
input("我是自在老师")
#案例2: 在指定的控件中,输入文本
# 导包
from airscript.node import Selector
from airscript.action import input
# 控件筛选器 定位 要输入文本的控件
view = Selector().id("com.aojoy.airscript:id/search_bar_text");
# 输入文本信息
input("我是自在老师",view)
按键 
# 导包
from airscript.action import key
模拟部分按键
如何模拟键盘按键?
如果您想尝试模拟键盘按键,比如 A,B 等. 请尝试通过 android debug bridge(adb) 来模拟.
# 导包
from airscript.action import key
# 模拟 home 按键
key.home()
# 模拟 back 按键
key.back()
# 模拟 notifactions 按键
key.notifactions()
捕获 
# 导包
from airscript.action import Catch
#创建一个捕获对象
Catch()
捕获点击
Catch()
捕捉用户点击坐标
#案例1:简单的捕捉点击
# 导包
from airscript.action import Catch
# 捕获用户点击
p = Catch().click()
# 打印捕获点的x,y坐标
print(p.x,p.y)
#案例2:捕捉用户点击,并配置捕捉界面信息
# 导包
from airscript.action import Catch
# 捕获用户点击,配置页面展示的信息,并闪烁屏幕
p = Catch().msg("请点击红包位置").shine(True).click()
# 打印捕获点的x,y坐标
print(p.x,p.y)
捕获页面配置-信息
Catch()
设置捕获界面展示的信息
#案例
# 导包
from airscript.action import Catch
# 展示界面显示信息‘请点击’,并捕获用户点击
p = Catch().msg("请点击").click()
# 打印捕获点的x,y坐标
print(p.x,p.y)
捕获页面配置-是否闪屏
Catch()
设置捕获界面展示的信息
#案例
# 导包
from airscript.action import Catch
# 展示界面并闪屏提醒,捕获用户点击
p = Catch().shine(True).click()
# 打印捕获点的x,y坐标
print(p.x,p.y)
hid
# 导包
from airscript.action import hid
hid 虚拟外设动作类,此模块可在无障碍模式下使用hid
在使用前请确保 已经绑定设备成功
点击
hid
点击屏幕某个坐标
滑动
hid.slide()
模拟手指滑动
按键
hid.key()
key值
类型:
字母键: -
a- A键 -b- B键 -c- C键 ... -z- Z键数字键: -
1- 数字1键 -2- 数字2键 ... -0- 数字0键功能键: -
enter- 回车键 -esc- ESC键 -backspace- 退格键 -tab- Tab键 -space- 空格键 -capsLock- 大写锁定键 -f1- F1功能键 ... -f12- F12功能键 -printScreen- 打印屏幕键 -scrollLock- 滚动锁定键 -pause- 暂停键导航键: -
insert- 插入键 -home- Home键 -pageUp- 上翻页键 -delete- 删除键 -end- End键 -pageDown- 下翻页键 -rightArrow- 右箭头键 -leftArrow- 左箭头键 -downArrow- 下箭头键 -upArrow- 上箭头键符号键: -
minus- 减号键 -equal- 等号键 -leftBracket- 左方括号键 -rightBracket- 右方括号键 -backslash- 反斜杠键 -semicolon- 分号键 -quote- 单引号键 -grave- 重音符键 -comma- 逗号键 -period- 句号键 -slash- 斜杠键小键盘: -
numLock- 小键盘锁定键 -keypadDivide- 小键盘除号键 -keypadMultiply- 小键盘乘号键 -keypadSubtract- 小键盘减号键 -keypadAdd- 小键盘加号键 -keypadEnter- 小键盘回车键 -keypad1- 小键盘1键 ... -keypad9- 小键盘9键 -keypad0- 小键盘0键 -keypadDecimal- 小键盘小数点键- 描述: 要发送的按键值。
Shift:- 类型: Boolean | undefined
- 描述: Shift键的状态,表示是否按下。不传默认为 false。
Ctrl:- 类型: Boolean | undefined
- 描述: Ctrl键的状态,表示是否按下。不传默认为 false。
Alt:- 类型: Boolean | undefined
- 描述: Alt键的状态,表示是否按下。不传默认为 false。
Command:- 类型: Boolean | undefined
- 描述: Command键的状态,表示是否按下。不传默认为 false。
id:- 类型: String
- 描述: 要操作的设备的唯一标识符。