1.1.8版本Airtest新增的iOS接口究竟有多香?!今天告诉你

简介: 1.1.8版本Airtest新增的iOS接口究竟有多香?!今天告诉你

前言



年前我们更新了1.1.8版本的Airtest,这个版本主要是针对我们的iOS做了一些新的支持和功能更新。


其中,我们新增了不少接口用于处理各种iOS事件,今天我们就一起来看看这些 新增iOS接口详细的示例 把!


PS:如需使用下文中iOS的新接口,需要把IDE升级为1.2.7版本或者1.2.8版本,使用本地python环境的同学需要把airtest版本升级为1.1.8版本。


1.keyevent接口增加音量控制事件


网络异常,图片无法展示
|


for i in range(3):
    keyevent("volumeUp") # 增加音量
    sleep(1.0)
sleep(1.0)
keyevent("volumeDown") # 减少音量
复制代码


2.新增app_state接口返回包体状态


网络异常,图片无法展示
|


其中value对应的含义为:


  • 1: not running
  • 2: running in background
  • 3:running in foreground
  • 4: running


>>>start_app("com.apple.mobilesafari")
>>>sleep(2.0)
>>>print("---------------------------")
>>>print("此时的包体状态为:"+str(ios.app_state("com.apple.mobilesafari")["value"]))
>>>home()
>>>sleep(2.0)
>>>print("---------------------------")
>>>print("此时的包体状态为:"+str(ios.app_state("com.apple.mobilesafari")["value"]))
>>>stop_app("com.apple.mobilesafari")
>>>sleep(2.0)
>>>print("---------------------------")
>>>print("此时的包体状态为:"+str(ios.app_state("com.apple.mobilesafari")["value"]))
---------------------------
此时的包体状态为:4
---------------------------
此时的包体状态为:3
---------------------------
此时的包体状态为:1
复制代码


3.新增app_current接口返回当前运行应用



网络异常,图片无法展示
|


可用于查看或者获取当前打开应用的包名和其它详细信息。


>>>start_app("com.apple.mobilesafari")
>>>print("---------------------------")
>>>print(ios.app_current())
>>>keyevent("HOME")
>>>sleep(1.0)
>>>print("---------------------------")
>>>print(ios.app_current())
---------------------------
AttrDict({'processArguments': {'env': {}, 'args': []}, 'name': 'AX error -25205', 'pid': 226, 'bundleId': 'com.apple.mobilesafari'})
---------------------------
AttrDict({'processArguments': {'env': {}, 'args': []}, 'name': 'AX error -25205', 'pid': 58, 'bundleId': 'com.apple.springboard'})
复制代码


4.新增加锁的相关接口



1)判断设备当前是否上锁:is_locked


from airtest.core.ios.ios import IOS, wda
ios = IOS("http://localhost:8100/")
ios.is_locked()
复制代码


2)解锁设备:unlock


from airtest.core.ios.ios import IOS, wda
ios = IOS("http://localhost:8100/")
ios.unlock()
复制代码


3)给设备上锁:lock


from airtest.core.ios.ios import IOS, wda
ios = IOS("http://localhost:8100/")
ios.lock()
复制代码


4)给设备上锁解锁的示例


网络异常,图片无法展示
|


>>>print("当前设备是否上锁:"+str(ios.is_locked()))
>>>ios.lock()
>>>print("当前设备是否上锁:"+str(ios.is_locked()))
>>>sleep(1.0)
>>>ios.unlock()
当前设备是否上锁:False
当前设备是否上锁:True
复制代码


5.新增弹窗的相关接口



1)判断弹窗是否存在:alert_exists


网络异常,图片无法展示
|


>>>start_app("com.apple.mobilesafari")
>>>sleep(1.0)
>>>print("是否出现弹窗:"+str(ios.alert_exists()))
是否出现弹窗:True
复制代码


2)返回弹窗上面的描述文字:alert.text


网络异常,图片无法展示
|


>>>print(ios.driver.alert.text)
关闭飞行模式或者使用无线局域网来访问数据
复制代码


3)以列表形式返回弹窗的按钮文字:alert_buttons


网络异常,图片无法展示
|


>>>print(ios.alert_buttons())
('设置', '好')
复制代码


4)点击弹窗左边的按钮:alert_dismiss


网络异常,图片无法展示
|


主要适用于拥有2个按钮的iOS弹窗。


ios.alert_dismiss()
复制代码


5)点击弹窗右边的按钮:alert_accept


网络异常,图片无法展示
|


同样主要适用于拥有2个按钮的iOS弹窗。


ios.alert_accept()
复制代码


6)点击弹窗上的指定按钮:alert_click


网络异常,图片无法展示
|


ios.alert_click(['设置'])
复制代码


按传入的列表顺序查找指定按钮并进行点击操作,可用于处理弹窗的类似选项,比如指定点击弹窗与同意相关的选项:


ios.alert_click(['好','同意','允许'])
复制代码


7)监控弹窗出现并且点击指定按钮:alert_watch_and_click


网络异常,图片无法展示
|


图示案例的监控时长为5s。并且如未在接口内传入指定的按钮,则默认情况下监控此类弹窗: ["使用App时允许", "好", "稍后", "稍后提醒", "确定", "允许", "以后"]


start_app("com.apple.mobilesafari")
sleep(1.0)
with ios.alert_watch_and_click():
    sleep(5)
复制代码


网络异常,图片无法展示
|


如传入指定按钮,则按传入的按钮需要来进行监控。


start_app("com.apple.mobilesafari")
sleep(1.0)
with ios.alert_watch_and_click(["设置"]):
    sleep(5)
复制代码


6.新增device_info接口返回设备信息



网络异常,图片无法展示
|


>>>print("----------------------")
>>>print(ios.device_info())
----------------------
AttrDict({'timeZone': 'GMT+0800', 'currentLocale': 'zh_CN', 'model': 'iPhone', 'uuid': '8816D79F-1F6A-47B5-xxxx-xxxxxxxxx', 'userInterfaceIdiom': 0, 'userInterfaceStyle': 'light', 'name': 'iPhone', 'isSimulator': False})
复制代码


7.新增home_interface接口返回是否是home页



网络异常,图片无法展示
|


>>>print("此时是否是HOME页:"+str(ios.home_interface()))
>>>keyevent("HOME")
>>>sleep(1.0)
>>>print("此时是否是HOME页:"+str(ios.home_interface()))
此时是否是HOME页:False
此时是否是HOME页:True


相关文章
|
8月前
|
Android开发 iOS开发 计算机视觉
Airtest新增iOS、Windows录屏功能,真香!
Airtest新增iOS、Windows录屏功能,真香!
205 0
|
5月前
|
缓存 iOS开发
如何在Xcode删除某个版本的IOS模拟器
如何在Xcode删除某个版本的IOS模拟器
660 1
|
8月前
|
Linux 数据安全/隐私保护 iOS开发
Xcode8.1如何支持iOS8.0以下版本
Xcode8.1如何支持iOS8.0以下版本
54 0
|
8月前
|
iOS开发
解决使用document.activeElement.blur()禁止弹出手机默认键盘ios版本17以上会出现闪屏问题
解决使用document.activeElement.blur()禁止弹出手机默认键盘ios版本17以上会出现闪屏问题
87 2
|
8月前
|
数据安全/隐私保护 开发者 iOS开发
iOS-打包上架构建版本一直不出现/正在处理/自动消失
iOS-打包上架构建版本一直不出现/正在处理/自动消失
176 0
|
8月前
|
移动开发 开发工具 数据安全/隐私保护
iOS APP 版本更新升级教程:如何打包上架新的 APP 版本?
iOS APP 版本更新升级教程:如何打包上架新的 APP 版本?
iOS APP 版本更新升级教程:如何打包上架新的 APP 版本?
|
8月前
|
iOS开发
Airtest的iOS实用接口介绍
Airtest的iOS实用接口介绍
|
8月前
|
数据安全/隐私保护 开发者
iOS- 打包上架构建版本一直不出现 / 正在处理 / 自动消失
iOS- 打包上架构建版本一直不出现 / 正在处理 / 自动消失
|
JSON iOS开发 数据格式
iOS 应用版本对比
本文的目的就一个,通过对比 App Store 成功发布的App 版本号 来确认当前手机中安装的客户端版本号是否有区别. 如果有区别,那么可以提示用户可以去App Store 升级了.
850 0
|
2月前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。