Airtest重磅更新,对iOS的支持全面升级优化啦!
前言
AirtestProject團(tuán)隊(duì)又來(lái)交作業(yè)啦,大家期盼已久的iOS更新終于來(lái)了!!!
本次更新不僅同步支持了Appium的WebDriverAgent工具,還新增了一系列接口處理iOS的彈窗這個(gè)老大難問(wèn)題,另外更新之后,iOS支持到最新版本,xcode支持到12.1版本,更多更新詳情,請(qǐng)同學(xué)們細(xì)細(xì)查看下文。
PS:本次iOS的更新內(nèi)容僅支持python3,請(qǐng)python2的同學(xué)安裝個(gè)python3環(huán)境使用哦!
Airtest功能更新
1.支持Appium的WebDriverAgent工具
對(duì)iOS驅(qū)動(dòng)部分迭代,同步支持 Appium的 WebDriverAgent工具 和 Airtest底下的 iOS-Tagent工具 。
自此,同學(xué)們既可以使用Appium的 WebDriverAgent 工具來(lái)部署iOS真機(jī),也可以使用我們Airtest底下的 iOS-Tagent 工具來(lái)部署iOS真機(jī),非常靈活。
另外,對(duì)于低版本的iOS(iOS11以下),我們更建議使用我們的 iOS-Tagent 工具,高版本的使用Appium的 WebDriverAgent 工具。
關(guān)于如何安裝appium的 WebDriverAgent 教程,我們推薦以下幾篇教程:
Appium的WebDriverAgent工具-安裝資料:https://testerhome.com/topics/7220
Facebook的WebDriverAgent工具-安裝資料:https://testerhome.com/topics/10463
Appium的WebDriverAgent工具-疑難解決:https://github.com/appium/WebDriverAgent/issues
Facebook的WebDriverAgent工具-疑難解決:https://github.com/facebookarchive/WebDriverAgent/issues
如果同學(xué)們選擇在iOS真機(jī)上安裝appium的 WebDriverAgent 工具,按上述教程安裝好以后,現(xiàn)在同樣支持使用我們的AirtestIDE連接這臺(tái)iOS設(shè)備:
或者使用代碼連接:
auto_setup(__file__,devices=["iOS:///127.0.0.1:8100"])
2.keyevet接口增加音量控制事件
支持使用 keyevent 接口對(duì)iOS設(shè)備的音量進(jìn)行加減控制:
# 音量增加
keyevent("volumeUp")
# 音量減少
keyevent("volumeDown")
3.新增app_state接口返回包體狀態(tài)
新增 app_state 接口,可用于返回指定包體的當(dāng)前狀態(tài):
from airtest.core.ios.ios import IOS, wda
ios = IOS("http://localhost:8100/")
# 返回瀏覽器應(yīng)用的當(dāng)前狀態(tài)
ios.app_state("com.apple.mobilesafari")
4.新增app_current接口返回當(dāng)前運(yùn)行應(yīng)用
新增 app_current 接口,可用于返回當(dāng)前運(yùn)行的應(yīng)用 :
from airtest.core.ios.ios import IOS, wda
ios = IOS("http://localhost:8100/")
# 返回iOS設(shè)備當(dāng)前運(yùn)行的應(yīng)用
ios.app_current()
5.新增加鎖的相關(guān)接口
1)is_locked
判斷設(shè)備當(dāng)前是否上鎖:
from airtest.core.ios.ios import IOS, wda
ios = IOS("http://localhost:8100/")
# 判斷當(dāng)前iOS設(shè)備是否上鎖
ios.is_locked()
2)unlock
解鎖設(shè)備:
from airtest.core.ios.ios import IOS, wda
ios = IOS("http://localhost:8100/")
# 解鎖iOS設(shè)備
ios.unlock()
3)lock
給設(shè)備上鎖:
from airtest.core.ios.ios import IOS, wda
ios = IOS("http://localhost:8100/")
# 給iOS設(shè)備上鎖
ios.lock()
6.新增彈窗的相關(guān)接口
1)alert_accept
一般來(lái)說(shuō),適用于擁有2個(gè)按鈕的iOS彈窗,會(huì)點(diǎn)擊彈窗右邊的按鈕:
from airtest.core.ios.ios import IOS, wda
ios = IOS("http://localhost:8100/")
# 點(diǎn)擊彈窗右邊的按鈕
ios.alert_accept()
2)alert_dismiss
同樣適用于擁有2個(gè)按鈕的iOS彈窗,會(huì)點(diǎn)擊彈窗左邊的按鈕:
from airtest.core.ios.ios import IOS, wda
ios = IOS("http://localhost:8100/")
# 點(diǎn)擊彈窗左邊的按鈕
ios.alert_dismiss()
PS:對(duì)于擁有2個(gè)按鈕的iOS彈窗來(lái)說(shuō),一般情況下,確認(rèn)按鈕都在右邊,所以alert_accept 會(huì)點(diǎn)擊右邊的按鈕,取消一般在左邊,所以 alert_dismiss 會(huì)點(diǎn)左邊的按鈕。這只是一個(gè)方便使用的接口,不一定適用于所有的情況,如果遇到點(diǎn)擊情況不符合預(yù)期,可以改用下文中,按指定按鈕名字來(lái)點(diǎn)擊的接口(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/")
# 返回設(shè)備彈窗的按鈕的文字
ios.alert_buttons()
5)alert_click
點(diǎn)擊彈窗上的指定按鈕:
from airtest.core.ios.ios import IOS, wda
ios = IOS("http://localhost:8100/")
# 點(diǎn)擊彈窗上面的指定按鈕,可傳入列表按順序查找
ios.alert_click(['設(shè)置', '允許', '好'])
6)alert_exists
判斷彈窗是否存在:
from airtest.core.ios.ios import IOS, wda
ios = IOS("http://localhost:8100/")
# 判斷設(shè)備當(dāng)前是否有彈窗存在
ios.alert_exists()
7)alert_watch_and_click
監(jiān)控彈窗出現(xiàn)并且點(diǎn)擊指定按鈕:
from airtest.core.ios.ios import IOS, wda
ios = IOS("http://localhost:8100/")
# 默認(rèn)情況下監(jiān)控此類(lèi)彈窗:["使用App時(shí)允許", "好", "稍后", "稍后提醒", "確定", "允許", "以后"]
with ios.alert_watch_and_click():
sleep(5)
# 監(jiān)控指定彈窗出現(xiàn)并點(diǎn)擊
with ios.alert_watch_and_click(["Cancel"]):
sleep(5)
# 設(shè)置監(jiān)控的時(shí)間間隔為2.0s
with ios.alert_watch_and_click(interval=2.0):
sleep(5)
7.新增device_info接口返回設(shè)備信息
新增 device_info 接口,可返回設(shè)備信息:
from airtest.core.ios.ios import IOS, wda
ios = IOS("http://localhost:8100/")
# 返回iOS的設(shè)備信息
ios.device_info()
8.新增home_interface接口返回是否是home頁(yè)
新增 home_interface 接口,可返回當(dāng)前界面是否為home界面:
from airtest.core.ios.ios import IOS, wda
ios = IOS("http://localhost:8100/")
# 判斷iOS設(shè)備當(dāng)前界面是否為home界面
ios.home_interface()
PS:以上新增的功能接口中,部分接口可能存在適用性問(wèn)題
Airtest的bug修復(fù)
1.修復(fù)部分設(shè)備獲取方向異常的問(wèn)題
2.修復(fù)部分設(shè)備啟動(dòng)應(yīng)用和關(guān)閉應(yīng)用失敗的問(wèn)題
3.修復(fù)poco位置識(shí)別異常的問(wèn)題
4.修復(fù)部分設(shè)備橫屏顯示異常的問(wèn)題
5.優(yōu)化了同時(shí)有多個(gè)進(jìn)程連接單個(gè)ios時(shí)的表現(xiàn)和連接穩(wěn)定性,略微加快了點(diǎn)擊和滑動(dòng)操作的速度。另外部分設(shè)備(例如ipad, 6P/7P/8P)的操作速度會(huì)比別的型號(hào)手機(jī)更慢,這些型號(hào)的設(shè)備在豎屏情況下使用體驗(yàn)會(huì)更好
poco更新
1.兼容Appium的 WebDriverAgent 工具元素樹(shù)
2.修復(fù)設(shè)備在主界面橫屏狀態(tài)下位置識(shí)別異常的問(wèn)題
AirtestIDE更新
1.適配iOS的更新,去除旋轉(zhuǎn)邏輯
2.修復(fù)部分iOS的中文元素樹(shù)標(biāo)簽的顯示異常
3.修復(fù)了Ipad在四個(gè)方向上旋轉(zhuǎn)的時(shí)候,點(diǎn)擊位置、poco框選位置錯(cuò)誤的問(wèn)題
iOS-Tagent更新
1.恢復(fù)了部分元素樹(shù)的標(biāo)簽值
2.修復(fù)了iOS版本在11-13之間的橫屏截圖被WDA強(qiáng)行壓縮的異常
更多展望
本次更新完成后,同學(xué)們進(jìn)行iOS自動(dòng)化測(cè)試時(shí),可自由使用Airtest底下的 iOS-Tagent 工具或者Appium的 WebDriverAgent 工具作為底層服務(wù)。
由于Appium的 WebDriverAgent 工具 是開(kāi)源版本,可自由克隆并修改源碼,非常方便同學(xué)們克隆下來(lái)修復(fù)一些已知的異常。
所以我們也很希望同學(xué)們把自測(cè)過(guò)后的一些優(yōu)秀代碼,提交至GitHub的Appium的 WebDriverAgent 工具倉(cāng)庫(kù)或者在我們的Airtest開(kāi)發(fā)者交流Q群(654700783)留言討論,將這部分貢獻(xiàn)出去,讓更多的人受益。
Airtest官網(wǎng):http://airtest.netease.com/
Airtest教程官網(wǎng):https://airtest.doc.io.netease.com/
搭建企業(yè)私有云服務(wù):https://airlab.163.com/b2b
官方答疑 Q 群:654700783
呀,這么認(rèn)真都看到這里啦,幫忙點(diǎn)個(gè)推薦支持一下唄,灰常感謝~
總結(jié)
以上是生活随笔為你收集整理的Airtest重磅更新,对iOS的支持全面升级优化啦!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 微信授权登录微信公众号和PC端网站
- 下一篇: 面试时如何考察应聘者的素质?