airtest.core.api module

这个模块包含了Airtest核心API。

init_device(platform='Android'uuid=None**kwargs)[源代码]

初始化设备,并设置为当前设备。

参数:

  • platform – Android, IOS or Windows
  • uuid – 目标设备的uuid,例如Android的序列号,Windows的窗口句柄,或iOS的uuid
  • kwargs – 可选的平台相关的参数,例如Android下的 ``cap_method=JAVACAP``参数

返回:

device对象

connect_device(uri)[源代码]

用URI字符串来初始化设备,并且设置为当前设备。

参数:

uri – 一个用于初始化设备的URI字符串,例如 android://adbhost:adbport/serialno?param=value&param2=value2

返回:

device对象

示例:

  • android:/// # 当前Android设备,使用默认参数连接
  • android://adbhost:adbport/1234566?cap_method=javacap&touch_method=adb # 远程Android设备,并且使用了自定义参数
  • windows:/// # 本地Windows桌面
  • ios:/// # iOS 设备

 

 

 

device()[源代码]

返回当前正在使用中的设备。

返回:

当前设备实例

set_current(idx)[源代码]

设置当前设备。

参数:

idx – uuid或已初始化的设备列表中的编号,从0开始

引发:

IndexError – 当查找不到设备时

返回:

None

支持平台:

Android, iOS, Windows

auto_setup(basedir=Nonedevices=Nonelogdir=Noneproject_root=Nonecompress=None)[源代码]

自动配置运行环境,如果当前没有连接设备的话,就默认尝试连接Android设备。

参数:

  • basedir – 设置当前脚本的所在路径,也可以直接传 __file__ 变量进来
  • devices – 一个内容为 connect_device uri 字符串的列表
  • logdir – 可设置脚本运行时的log保存路径,默认值为None则不保存log,如果设置为True则自动保存在<basedir>/log目录中
  • project_root – 用于设置PROJECT_ROOT变量,方便 using 接口的调用
  • compress – 屏幕截图的压缩比率,在[1, 99]范围内的整数,默认是10

shell(*args**kwargs)[源代码]

在目标设备上运行远程shell指令

参数:

cmd – 需要在设备上运行的指令,例如 ls /data/local/tmp

返回:

shell指令的输出内容

支持平台:

Android

start_app(*args**kwargs)[源代码]

在设备上启动目标应用

参数:

  • package – 想要启动的应用包名package name,例如 com.netease.my
  • activity – 需要启动的activity,默认为None,意为main activity

返回:

None

支持平台:

Android, iOS

stop_app(*args**kwargs)[源代码]

终止目标应用在设备上的运行

参数:

package – 需要终止运行的应用包名 package name,另见 start_app

返回:

None

支持平台:

Android, iOS

clear_app(*args**kwargs)[源代码]

清理设备上的目标应用数据

参数:

package – 包名 package name,另见 start_app

返回:

None

支持平台:

Android

install(*args**kwargs)[源代码]

安装应用到设备上

参数:

  • filepath – 需要被安装的应用路径
  • kwargs – 平台相关的参数 kwargs,请参考对应的平台接口文档

返回:

None

支持平台:

Android

uninstall(*args**kwargs)[源代码]

卸载设备上的应用

参数:

package – 需要被卸载的包名 package name,另见 start_app

返回:

None

支持平台:

Android

snapshot(*args**kwargs)[源代码]

对目标设备进行一次截图,并且保存到文件中。

参数:

  • filename – 保存截图的文件名,默认保存路径为 ``ST.LOG_DIR``中
  • msg – 截图文件的简短描述,将会被显示在报告页面中
  • quality – 图片的质量,[1,99]的整数,默认是10
  • max_size – the maximum size of the picture, e.g 1200

返回:

截图文件的绝对路径

支持平台:

Android, iOS, Windows

wake(*args**kwargs)[源代码]

唤醒并解锁目标设备

返回:

None

支持平台:

Android

注解

在部分品牌手机上可能无法生效

home(*args**kwargs)[源代码]

返回HOME界面。

返回:

None

支持平台:

Android, iOS

touch(*args**kwargs)[源代码]

在当前设备画面上进行一次点击

参数:

  • v – 点击位置,可以是一个Template图片实例,或是一个绝对坐标 (x, y)
  • times – 点击次数
  • kwargs – 平台相关的参数 kwargs,请参考对应的平台接口文档

返回:

实际点击位置坐标 (x, y)

支持平台:

Android, Windows, iOS

click(*args**kwargs)

在当前设备画面上进行一次点击

参数:

  • v – 点击位置,可以是一个Template图片实例,或是一个绝对坐标 (x, y)
  • times – 点击次数
  • kwargs – 平台相关的参数 kwargs,请参考对应的平台接口文档

返回:

实际点击位置坐标 (x, y)

支持平台:

Android, Windows, iOS

double_click(*args**kwargs)[源代码]

swipe(*args**kwargs)[源代码]

在当前设备画面上进行一次滑动操作。

有两种传入参数的方式

  • swipe(v1, v2=Template(...)) # 从 v1 滑动到 v2
  • swipe(v1, vector=(x, y)) # 从 v1 开始滑动,沿着vector方向。

参数:

  • v1 – 滑动的起点,可以是一个Template图片实例,或是绝对坐标 (x, y)
  • v2 – 滑动的终点,可以是一个Template图片实例,或是绝对坐标 (x, y)
  • vector – 滑动动作的矢量坐标,可以是绝对坐标 (x,y) 或是屏幕百分比,例如 (0.5, 0.5)
  • **kwargs – 平台相关的参数 kwargs,请参考对应的平台接口文档

引发:

Exception – 当没有足够的参数来执行滑动时引发异常

返回:

原点位置和目标位置

支持平台:

Android, Windows, iOS

pinch(*args**kwargs)[源代码]

在设备屏幕上执行一个双指pinch捏合操作

参数:

  • in_or_out – 向内捏合或向外扩大,在[“in”, “out”] 中枚举一个值
  • center – pinch动作的中心位置,默认值为None则为屏幕中心点
  • percent – pinch动作的屏幕百分比,默认值为0.5

返回:

None

支持平台:

Android

keyevent(*args**kwargs)[源代码]

在设备上执行keyevent按键事件

参数:

  • keyname – 平台相关的按键名称
  • **kwargs – 平台相关的参数 kwargs,请参考对应的平台接口文档

返回:

None

支持平台:

Android, Windows, iOS

text(*args**kwargs)[源代码]

在目标设备上输入文本,文本框需要处于激活状态。

参数:

  • text – 要输入的文本
  • enter – 是否在输入完毕后,执行一次 Enter ,默认是True

返回:

None

支持平台:

Android, Windows, iOS

sleep(*args**kwargs)[源代码]

设置一个等待sleep时间,它将会被显示在报告中

参数:

secs – sleep的时长

返回:

None

支持平台:

Android, Windows, iOS

wait(*args**kwargs)[源代码]

等待当前画面上出现某个匹配的Template图片

参数:

  • v – 要等待出现的目标Template实例
  • timeout – 等待匹配的最大超时时长,默认为None即默认取 ST.FIND_TIMEOUT 的值
  • interval – 尝试查找匹配项的时间间隔(以秒为单位)
  • intervalfunc – 在首次尝试查找匹配失败后的回调函数

引发:

TargetNotFoundError – 在超时后仍未找到目标则触发

返回:

匹配目标的坐标

支持平台:

Android, Windows, iOS

exists(*args**kwargs)[源代码]

检查设备上是否存在给定目标

参数:

v – 要检查的目标

返回:

如果未找到目标,则返回False,否则返回目标的坐标

支持平台:

Android, Windows, iOS

find_all(*args**kwargs)[源代码]

在设备屏幕上查找所有出现的目标并返回其坐标列表

参数:

v – 寻找目标

返回:

坐标列表, [(x, y), (x1, y1), …]

支持平台:

Android, Windows, iOS

assert_exists(*args**kwargs)[源代码]

设备屏幕上存在断言目标

参数:

  • v – 要检查的目标
  • msg – 断言的简短描述,它将被记录在报告中

引发:

AssertionError – 如果断言失败

返回:

目标坐标

支持平台:

Android, Windows, iOS

assert_not_exists(*args**kwargs)[源代码]

设备屏幕上不存在断言目标

参数:

  • v – 要检查的目标
  • msg – 断言的简短描述,它将被记录在报告中

引发:

AssertionError – 如果断言失败

返回:

None.

支持平台:

Android, Windows, iOS

assert_equal(*args**kwargs)[源代码]

断言两个值相等

参数:

  • first – 第一个值
  • second – 第二个值
  • msg – 断言的简短描述,它将被记录在报告中

引发:

AssertionError – 如果断言失败

返回:

None

支持平台:

Android, Windows, iOS

assert_not_equal(*args**kwargs)[源代码]

断言两个值不相等

参数:

  • first – 第一个值
  • second – 第二个值
  • msg – 断言的简短描述,它将被记录在报告中

引发:

AssertionError – 如果断言异常

返回:

None

支持平台:

Android, Windows, iOS