airtest之设备管理device

初始化 device

如果设备没有被初始化的话会进行初始化,并把初始化的设备作为当前设备。 用法如下:

1
2
3
4
5
6
7
8
9
def init_device(platform="Android", uuid=None, **kwargs):
    """
    Initialize device if not yet, and set as current device.

    :param platform: Android, IOS or Windows
    :param uuid: uuid for target device, e.g. serialno for Android, handle for Windows, uuid for iOS
    :param kwargs: Optional platform specific keyword args, e.g. `cap_method=JAVACAP` for Android
    :return: device instance
    """

示例如下:

1
2
device = init_device('Android')
print(device)

运行结果如下:

1
<airtest.core.android.android.Android object at 0x1018f3a58>

可以发现它返回的是一个 Android 对象。 这个 Android 对象实际上属于 airtest.core.android 这个包,继承自 airtest.core.device.Device 这个类,与之并列的还有 airtest.core.ios.ios.IOS 、airtest.core.linux.linux.Linuxairtest.core.win.win.Windows 等。这些都有一些针对 Device 操作的 API,下面我们以 airtest.core.android.android.Android 为例来总结一下。

get_default_device:获取默认 device
uuid:获取当前 Device 的 UUID
list_app:列举所有 App
path_app:打印输出某个 App 的完整路径
check_app:检查某个 App 是否在当前设备上
start_app:启动某个 App
start_app_timing:启动某个 App,然后计算时间
stop_app:停止某个 App
clear_app:清空某个 App 的全部数据
install_app:安装某个 App
install_multiple_app:安装多个 App
uninstall_app:卸载某个 App
snapshot:屏幕截图
shell:获取 Adb Shell 执行的结果
keyevent:执行键盘操作
wake:唤醒当前设备
home:点击 HOME 键
text:向设备输入内容
touch:点击屏幕某处的位置
double_click:双击屏幕某处的位置
swipe:滑动屏幕,由一点到另外一点
pinch:手指捏和操作
logcat:日志记录操作
getprop:获取某个特定属性的值
get_ip_address:获取 IP 地址
get_top_activity:获取当前 Activity
get_top_activity_name_and_pid:获取当前 Activity 的名称和进程号
get_top_activity_name:获取当前 Activity 的名称
is_keyboard_shown:判断当前键盘是否出现了
is_locked:设备是否锁定了
unlock:解锁设备
display_info:获取当前显示信息,如屏幕宽高等
get_display_info:同 display_info
get_current_resolution:获取当前设备分辨率
get_render_resolution:获取当前渲染分辨率
start_recording:开始录制
stop_recording:结束录制
adjust_all_screen:调整屏幕适配分辨率
from airtest.core.android import Android
from airtest.core.api import *
import logging

logging.getLogger("airtest").setLevel(logging.WARNING)

"""
变量名后面的冒号是:类型注解,3.6以后加入的,冒号右边是类型,仅仅是注释,有些鸡肋

变量注释的语法:注释变量类型,明确指出变量类型,方便帮助复杂案例中的类型推断。

var: type = value  其实本质上就是  var = value  # type就是var期望的类型

类型注释只是一种提示,并非强制的,Python解释器不会去校验value的类型是否真的是type

例如:a: str = 10  这样是没有错的,python解释器在执行时会把a当作int来操作(type(a)——int),不会去校验是否是字符串类型。 
"""

device: Android = init_device('Android')
is_locked = device.is_locked()
print(f'is_locked: {is_locked}')

# is_locked:设备是否锁定了
# unlock:解锁设备
if is_locked:
    device.unlock()

# wake:唤醒当前设备
device.wake()
# list_app:列举所有 App
app_list = device.list_app()
print(f'app list {app_list}')

# uuid:获取当前 Device 的 UUID
uuid = device.uuid
print(f'uuid {uuid}')

# get_display_info:同 display_info,获取当前显示信息,如屏幕宽高等
display_info = device.get_display_info()
print(f'display info {display_info}')

# get_render_resolution:获取当前渲染分辨率
resolution = device.get_render_resolution()
print(f'resolution {resolution}')

# get_ip_address:获取 IP 地址
ip_address = device.get_ip_address()
print(f'ip address {ip_address}')

# get_top_activity:获取当前 Activity
top_activity = device.get_top_activity()
print(f'top activity {top_activity}')

# is_keyboard_shown:判断当前键盘是否出现了
is_keyboard_shown = device.is_keyboard_shown()
print(f'is keyboard shown {is_keyboard_shown}')

这里我们调用了设备的一些操作方法,获取了一些基本状态,运行结果如下:

/usr/local/bin/python3.7 /Users/shimo/PycharmProjects/shimo/testcase/test_airtest.py
is_locked: False
app list ['com.huawei.scenepack', 'com.huawei.hifolder', 'com.android.cts.priv.ctsshim', 'com.huawei.camera', 'com.huawei.android.tips', 'com.huawei.camerakit.impl', 'com.huawei.synergy', 'com.huawei.android.launcher', '
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值