Skip to main content

基本操作

from ascript.android import action

模拟 手指 操作

点击

模拟 手指点击屏幕

  • 函数
action.click(x:int,y:int,dur:int = 20):
  • 参数
参数类型是否必填说明
xint要点击的屏幕X坐标
yint要点击的屏幕Y坐标
durfloat点击持续时间,默认20毫秒
  • 示例
# 模拟手指点击屏幕坐标 (898,1916)
from ascript.android import action
action.click(898,1916)
# 模拟手指长按屏幕坐标 (898,1916) 按住两秒不放
from ascript.android import action
action.click(898,1916,2000)

滑动

模拟 手指滑动屏幕

  • 函数
action.slide(x:int,y:int,x1:int,y1:int,dur:int=20)
  • 参数
参数类型是否必填说明
xint滑动起始点X坐标
yint滑动起始点Y坐标
x1int滑动结束点X坐标
y1int滑动结束点Y坐标
durfloat点击持续时间,默认20毫秒
  • 示例
# 模拟手指滑动屏幕 从坐标(157,798) 滑动至坐标(946,834) ,耗时20毫秒
from ascript.android import action
action.slide(157,798,946,834)
# 模拟手指滑动屏幕 从坐标(157,798) 滑动至坐标(946,834) ,耗时3000毫秒
from ascript.android import action
action.slide(157,798,946,834,3000)

输入

模拟 输入文本

  • 函数
action.input(msg:str="",selector:Selector=None)
  • 参数
参数类型是否必填说明
msgstr输入的内容
selectorSelector控件检索规则 当Selector 为None时,您的输入框必须已经获取了焦点
  • 示例
# 模拟在当前 ‘已获取焦点’的的文本框中输入‘你好 aslib!’
from ascript.android import action
action.input("你好 aslib!")
# 模拟在 控件检查器查到的 文本框中输入‘你好 aslib!’
from ascript.android import action
from ascript.android.node import Selector

selector = Selector().id("com.aojoy.airscript:id/search_bar_text")
action.input("你好 aslib!",selector)

触摸

模拟 手指 按下,移动,抬起

#class
action.Touch

按下

模拟 手指按下

action.Touch.down(x,y,dur:int=20)
  • 参数
参数类型是否必填说明
xint触摸X点坐标
yint触摸Y点坐标
durfloat动作持续时间,默认20毫秒

移动

模拟 手指移动

action.Touch.move(x, y, dur: int = 20)
  • 参数
参数类型是否必填说明
xint触摸X点坐标
yint触摸Y点坐标
durfloat动作持续时间,默认20毫秒

抬起

模拟 手指抬起

action.Touch.up(x, y, dur: int = 20)
  • 参数
参数类型是否必填说明
xint触摸X点坐标
yint触摸Y点坐标
durfloat动作持续时间,默认20毫秒
# 一个完整的 触摸 操作
from ascript.android import action

# 从坐标(100,200)的位置按下
action.Touch.down(299,629)
# 按下的同时,移动到坐标(300,300)
action.Touch.move(780,645)
# 按下的同时,再次移动到坐标(400,350),移动用时 1000毫秒
action.Touch.move(445,1152,1000)
# 移动至坐标(450,400)位置 抬起
action.Touch.up(445,1152)

按键

模拟 模拟按键操作

#class
action.Key

Home键

模拟设备 Home按键

action.Key.home()

返回键

模拟设备 返回按键

action.Key.back()

弹出通知栏

模拟设备 调出通知栏

action.Key.notifactions()

任务栏键

模拟设备 任务栏键

action.Key.recents()

截屏键

模拟设备 关闭屏幕

action.Key.screenshot()

锁屏键

模拟设备 关闭屏幕

action.Key.lockscreen()

手指路径

模拟手指 移动路径

#class
from ascript.android.action import Path

创建路径

创建一根手指路径, 多根手指创建多个即可.

Path(self,start_time:int=0, duration:int=20, will_continue:bool=False)
  • 参数
参数类型是否必填说明
start_timeint延迟执行时间
durationint路径执行时常
will_continuebool执行完毕后,是否抬起手指 True:抬起 False:不抬起,下一个手势将连续执行
from ascript.android.action import Path

line1 = Path(0,1000);
# 移动初始点
line1.moveTo(804,708)
# 画直线到点
line1.lineTo(827,1479)
# 使用二次贝塞尔曲线 从点(500,800) 到 (250,900)
line1.quadTo(500,800,250,900)

路径方法

Path 实现了 android.graphics.Path 中的大部分方法.

具体参数参考:android.graphics.Path

支持的绘制方法如下
moveTorCubicTo
lineTorMoveTo
quadToreset
rCubicTorewind
rQuadToaddArc
addCircleaddOval
addRectaddRoundRect
arcTocubicTo
setLastPointrLineTo

多指操作

  • 函数
action.gesture(paths:List[Path],listener=None)
  • 参数
参数类型是否必填说明
pathsPath[]要执行的一组手指路径
listenerclass手势回调对象, 函数需包含两个函数
手势执行完毕回调:onCompleted(), 手势中断回调:onCancelled()
#案例1:执行一组动作,分别模拟两个手指同时操作
from ascript.android import action
from ascript.android.action import Path

# 模拟第一根手指
line1 = Path(0,1000);
line1.moveTo(804,708)
line1.lineTo(827,1479)

# 模拟第二根手指
line2 = Path(0,1200);
line2.moveTo(500,200)
line2.lineTo(500,500)

action.gesture([line1,line2])

#案例2,执行一组动作,分别模拟两个手指同时操作,并监听动作是否执行结束
from ascript.android import action
from ascript.android.action import Path

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("被中断取消了")

# 执行 这一组动作
action.gesture([line1,line2],listener)
#案例3:连续 执行两个Path路径,中途不松手指
from ascript.android import action
from ascript.android.action import Path

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("被中断取消了")

action.gesture([line1],listener)



捕获点击

捕获用户点击屏幕的坐标

  • 函数
action.catch_click(msg: str = None, shine: bool = True):
  • 参数
参数类型是否必填说明
msgstr捕获屏幕坐标时,要显示的文字.默认无文字显示
shinebool是否闪烁屏幕提示用户. 默认闪烁,False为不闪烁
  • 返回值

返回用户点击的屏幕坐标位置.

Point 对象. 包含 x,y 属性.分别代表横竖坐标值

  • 示例
# 捕获用户点击屏幕的坐标
from ascript.android import action
p = action.catch_click()
print(p)
# 捕获用户点击屏幕的坐标,给出提示文字,并取消屏幕闪烁
from ascript.android import action
p = action.catch_click("请点击屏幕任意位置",False)
print(p)