前言
不知道做iOS測試的同學有沒有遇到過1個非常讓人苦惱的問題:每次打開iOS應用的界面都是上次退出時的界面,應用初始頁面不一致,導致腳本運行出現了各種問題。
但iOS平台並不支持 clear_app()
接口,所以無法像Android那樣直接調用 clear_app()
,就能把應用進程殺掉。而 stop_app()
也只能把應用放到后台,下次再喚起應用時,初始頁面依舊是上次退出時的頁面。
所以究竟有沒有什么辦法可以清除iOS的后台應用,從而保證應用的初始頁面一致呢?下文我們一起來探討下。
清除iOS后台應用實踐
既然沒有接口可以給我們用來清除iOS的后台應用,那我們可以換一種解決思路,用Airtest模擬清理后台應用的行為:雙擊HOME鍵/從底部向上滑動,喚出多任務切換的界面,再通過向上滑動的動作,逐一清理后台應用。
但實踐后發現,執行兩次 keyevent("HOME")
並不能實現雙擊HOME鍵的效果;從底部向上滑動也不能如預期那樣喚出多任務切換的界面。
那還有沒有別的方式可以喚出多任務的界面呢?其實是有的,在我們最常見的蘋果圓點樣式的輔助功能按鈕中,包含了1個名為 應用切換器
或者 多任務
的快捷功能。
1. 在輔助觸控中設置應用切換器
我們在示例設備中依次找到 設置--通用--輔助功能--輔助觸控
,打開 自定頂層菜單
,點擊 自定
的圖標,將其改成 多任務
,此時單擊蘋果的圓點按鈕,就可以看到里面已經出現了一個 多任務
的快捷鍵圖標:
設置好之后,我們可以通過Airtest的點擊腳本,輕松喚出多任務切換的界面:
2. 提高清除iOS后台應用腳本的兼容性
雖然上述腳本可以完成清除后台應用的工作,但實際在腳本編寫和運行的過程中,很容易發現一些影響兼容性的問題:
① 蘋果的圓點按鈕在閑置時會變成透明的,所以截圖時會把手機背景也連帶着截進去,換設備執行的時候容易找不到圖或者匹配出錯誤結果:
這個問題我們可以在設置中把這個圓點按鈕的閑置透明度改成100%,即閑置時,圓點按鈕也不會變成透明的效果:
把其余待測iOS設備的圓點按鈕透明度都設置為100%,即閑置時圓點按鈕也是全黑不透明的,此時的截圖腳本就可以在更多機器上成功運行了:
② 不同型號的iOS任務切換器圖標不全相同
比如iPhone 6的任務切換器圖標:
iPhone 7 plus的多任務圖標:
不同型號的蘋果設備,存在不一樣的應用切換器圖標,那我們總不能換一台設備就改一次點擊切換器圖標的腳本把?當然不是。更好的解決辦法是,我們把這幾種圖標保存在1個列表里面,只要列表中的任意1個圖標出現了,我們就進行點擊操作:
這樣即使更換了iOS設備,應用切換器的圖標不一致了,我們還是可以使用同一個腳本:
小結
關於清除iOS后台應用的教程就講解到這里,解決思路由我們的airtest用戶cy hus提供。如果同學們有更好的解決辦法,也歡迎在我們的官方答疑Q群(1017250147)中分享~
AirtestProject官方答疑Q群:1017250147
Airtest官網:http://airtest.netease.com/
Airtest教程官網:https://airtest.doc.io.netease.com/
搭建企業私有雲服務:https://airlab.163.com/b2b