动作

动作(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.Pathopen in new window 中的大部分方法.

# 一个简单的 路径规划案例

#导包
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
      • 描述: 要操作的设备的唯一标识符。
更新日期:
Contributors: 自在