Airtest重磅更新,对iOS的支持全面升级优化啦!

简介: Airtest重磅更新,对iOS的支持全面升级优化啦!

前言



AirtestProject团队又来交作业啦,大家期盼已久的iOS更新终于来了!!!


本次更新不仅同步支持了Appium的WebDriverAgent工具,还新增了一系列接口处理iOS的弹窗这个老大难问题,另外更新之后,iOS支持到最新版本,xcode支持到12.1版本,更多更新详情,请同学们细细查看下文。


PS:本次iOS的更新内容仅支持python3,请python2的同学安装个python3环境使用哦!


Airtest功能更新



1.支持Appium的WebDriverAgent工具


对iOS驱动部分迭代,同步支持 Appium的 WebDriverAgent工具 和 Airtest底下的 iOS-Tagent工具


自此,同学们既可以使用Appium的 WebDriverAgent 工具来部署iOS真机,也可以使用我们Airtest底下的 iOS-Tagent 工具来部署iOS真机,非常灵活。


另外,对于低版本的iOS(iOS11以下),我们更建议使用我们的 iOS-Tagent 工具,高版本的使用Appium的 WebDriverAgent 工具。


关于如何安装appium的 WebDriverAgent 教程,我们推荐以下几篇教程:



如果同学们选择在iOS真机上安装appium的 WebDriverAgent 工具,按上述教程安装好以后,现在同样支持使用我们的AirtestIDE连接这台iOS设备:


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


或者使用代码连接:


auto_setup(__file__,devices=["iOS:///127.0.0.1:8100"])
复制代码


2.keyevet接口增加音量控制事件


支持使用 keyevent 接口对iOS设备的音量进行加减控制:


# 音量增加
keyevent("volumeUp")
# 音量减少
keyevent("volumeDown")
复制代码


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


新增 app_state 接口,可用于返回指定包体的当前状态:


from airtest.core.ios.ios import IOS, wda
ios = IOS("http://localhost:8100/")
# 返回浏览器应用的当前状态
ios.app_state("com.apple.mobilesafari")
复制代码


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


新增 app_current 接口,可用于返回当前运行的应用 :


from airtest.core.ios.ios import IOS, wda
ios = IOS("http://localhost:8100/")
# 返回iOS设备当前运行的应用
ios.app_current()
复制代码


5.新增加锁的相关接口


1)is_locked


判断设备当前是否上锁:


from airtest.core.ios.ios import IOS, wda
ios = IOS("http://localhost:8100/")
# 判断当前iOS设备是否上锁
ios.is_locked()
复制代码


2)unlock


解锁设备:


from airtest.core.ios.ios import IOS, wda
ios = IOS("http://localhost:8100/")
# 解锁iOS设备
ios.unlock()
复制代码


3)lock


给设备上锁:


from airtest.core.ios.ios import IOS, wda
ios = IOS("http://localhost:8100/")
# 给iOS设备上锁
ios.lock()
复制代码


6.新增弹窗的相关接口


1)alert_accept


一般来说,适用于拥有2个按钮的iOS弹窗,会点击弹窗右边的按钮:


from airtest.core.ios.ios import IOS, wda
ios = IOS("http://localhost:8100/")
# 点击弹窗右边的按钮
ios.alert_accept()
复制代码


2)alert_dismiss


同样适用于拥有2个按钮的iOS弹窗,会点击弹窗左边的按钮:


from airtest.core.ios.ios import IOS, wda
ios = IOS("http://localhost:8100/")
# 点击弹窗左边的按钮
ios.alert_dismiss()
复制代码


PS:对于拥有2个按钮的iOS弹窗来说,一般情况下,确认按钮都在右边,所以alert_accept 会点击右边的按钮,取消一般在左边,所以 alert_dismiss 会点左边的按钮。这只是一个方便使用的接口,不一定适用于所有的情况,如果遇到点击情况不符合预期,可以改用下文中,按指定按钮名字来点击的接口(alert_click)。


3)alert.text


返回弹窗上面的描述文字:


from airtest.core.ios.ios import IOS, wda
ios = IOS("http://localhost:8100/")
# 返回弹窗上面的描述文字
ios.driver.alert.text
复制代码


4)alert_buttons


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


from airtest.core.ios.ios import IOS, wda
ios = IOS("http://localhost:8100/")
# 返回设备弹窗的按钮的文字
ios.alert_buttons()
复制代码


5)alert_click


点击弹窗上的指定按钮:


from airtest.core.ios.ios import IOS, wda
ios = IOS("http://localhost:8100/")
# 点击弹窗上面的指定按钮,可传入列表按顺序查找
ios.alert_click(['设置', '允许', '好'])
复制代码


6)alert_exists


判断弹窗是否存在:


from airtest.core.ios.ios import IOS, wda
ios = IOS("http://localhost:8100/")
# 判断设备当前是否有弹窗存在
ios.alert_exists()
复制代码


7)alert_watch_and_click


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


from airtest.core.ios.ios import IOS, wda
ios = IOS("http://localhost:8100/")
# 默认情况下监控此类弹窗:["使用App时允许", "好", "稍后", "稍后提醒", "确定", "允许", "以后"]
with ios.alert_watch_and_click():
    sleep(5)
# 监控指定弹窗出现并点击
with ios.alert_watch_and_click(["Cancel"]):
    sleep(5)
# 设置监控的时间间隔为2.0s
with ios.alert_watch_and_click(interval=2.0):
    sleep(5)
复制代码


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


新增 device_info 接口,可返回设备信息:


from airtest.core.ios.ios import IOS, wda
ios = IOS("http://localhost:8100/")
# 返回iOS的设备信息
ios.device_info()
复制代码


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


新增 home_interface 接口,可返回当前界面是否为home界面:


from airtest.core.ios.ios import IOS, wda
ios = IOS("http://localhost:8100/")
# 判断iOS设备当前界面是否为home界面
ios.home_interface()
复制代码


PS:以上新增的功能接口中,部分接口可能存在适用性问题


Airtest的bug修复



1.修复部分设备获取方向异常的问题
2.修复部分设备启动应用和关闭应用失败的问题
3.修复poco位置识别异常的问题
4.修复部分设备横屏显示异常的问题
5.优化了同时有多个进程连接单个ios时的表现和连接稳定性,略微加快了点击和滑动操作的速度。另外部分设备(例如ipad, 6P/7P/8P)的操作速度会比别的型号手机更慢,这些型号的设备在竖屏情况下使用体验会更好


poco更新



1.兼容Appium的 WebDriverAgent 工具元素树
2.修复设备在主界面横屏状态下位置识别异常的问题


AirtestIDE更新



1.适配iOS的更新,去除旋转逻辑
2.修复部分iOS的中文元素树标签的显示异常
3.修复了Ipad在四个方向上旋转的时候,点击位置、poco框选位置错误的问题


iOS-Tagent更新



1.恢复了部分元素树的标签值
2.修复了iOS版本在11-13之间的横屏截图被WDA强行压缩的异常


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


更多展望



本次更新完成后,同学们进行iOS自动化测试时,可自由使用Airtest底下的 iOS-Tagent 工具或者Appium的 WebDriverAgent 工具作为底层服务。


由于Appium的 WebDriverAgent 工具 是开源版本,可自由克隆并修改源码,非常方便同学们克隆下来修复一些已知的异常。

相关文章
|
9月前
|
Android开发 iOS开发 计算机视觉
Airtest新增iOS、Windows录屏功能,真香!
Airtest新增iOS、Windows录屏功能,真香!
226 0
|
设计模式 测试技术 iOS开发
带你读《2022技术人的百宝黑皮书》——淘宝iOS扫一扫架构升级 - 设计模式的应用(1)
带你读《2022技术人的百宝黑皮书》——淘宝iOS扫一扫架构升级 - 设计模式的应用(1)
303 0
|
Web App开发 数据安全/隐私保护 iOS开发
app优化ios,iOS app上架流程问题集锦,ASO新手小白必看(上)
app优化ios,iOS app上架流程问题集锦,ASO新手小白必看(上)
|
3月前
|
传感器 iOS开发 UED
探索iOS生态系统:从App Store优化到用户体验提升
本文旨在深入探讨iOS生态系统的多个方面,特别是如何通过App Store优化(ASO)和改进用户体验来提升应用的市场表现。不同于常规摘要仅概述文章内容的方式,我们将直接进入主题,首先介绍ASO的重要性及其对开发者的意义;接着分析当前iOS平台上用户行为的变化趋势以及这些变化如何影响应用程序的设计思路;最后提出几点实用建议帮助开发者更好地适应市场环境,增强自身竞争力。
|
3月前
|
存储 人工智能 安全
【通义】AI视界|苹果停止签署iOS 18.0.1,升级用户无法降级
本文由通义自动生成,涵盖24小时内精选的五条科技资讯:奥特曼谈OpenAI未来发展方向,ChatGPT新搜索功能上线遇故障,Perplexity AI选举搜索面临挑战,马斯克谈特斯拉造手机的可能性,以及苹果停止签署iOS 18.0.1。更多精彩内容,欢迎访问通通知道。
|
3月前
|
安全 Android开发 iOS开发
深入探索iOS与Android系统的差异性及优化策略
在当今数字化时代,移动操作系统的竞争尤为激烈,其中iOS和Android作为市场上的两大巨头,各自拥有庞大的用户基础和独特的技术特点。本文旨在通过对比分析iOS与Android的核心差异,探讨各自的优势与局限,并提出针对性的优化策略,以期为用户提供更优质的使用体验和为开发者提供有价值的参考。
|
6月前
|
人工智能 自然语言处理 云计算
iOS迎来AI升级:揭秘Apple全新“智能”系统
iOS迎来AI升级:揭秘Apple全新“智能”系统
iOS迎来AI升级:揭秘Apple全新“智能”系统
|
6月前
|
运维 网络安全 iOS开发
厉害!外国网络工程师用Ansible给思科IOS设备升级!
厉害!外国网络工程师用Ansible给思科IOS设备升级!
|
7月前
|
人工智能 搜索推荐 vr&ar
苹果手机iOS18最新升级:植入AI人工智能,国内百度文心一言,国外GPT4o来辅助
iOS 18亮点速览:AI强化的Siri、RCS安卓消息兼容、自定义主屏、辅助功能增强,VR进步,新隐私工具,包括锁定APP和眼动追踪。Passwords app保障安全,Apple Intelligence提升个性化体验。
270 1
|
9月前
|
存储 定位技术 iOS开发
XCode8升级到Xcode9(操作系统为iOS11)后原来的工程中遇到的问题
XCode8升级到Xcode9(操作系统为iOS11)后原来的工程中遇到的问题
159 23

热门文章

最新文章

  • 1
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    23
  • 2
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
    21
  • 3
    uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
    141
  • 4
    【05】2025年1月首发完整版-篇幅较长-苹果app如何上架到app store完整流程·不借助第三方上架工具的情况下无需花钱但需仔细学习-优雅草央千澈详解关于APP签名以及分发-们最关心的一篇来了-IOS上架app
    223
  • 5
    app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
    87
  • 6
    深入探索iOS开发中的SwiftUI框架
    143
  • 7
    ios样式开关按钮jQuery插件
    58
  • 8
    Android与iOS生态差异深度剖析:技术架构、开发体验与市场影响####
    74
  • 9
    深入探索iOS与Android操作系统的安全性差异
    102
  • 10
    安卓与iOS开发中的跨平台策略:一次编码,多平台部署
    174