一般情況下,在我們用Airtest連接Android設備(真機或模擬器)的時候,Yosemite.apk
就會被自動安裝到我們的設備上。當程序執行到輸入語句時,也會啟用 Yosemite
輸入法來進入輸入操作。
但很多新手同學對於這個 Yosemite.apk
還不是那么熟悉,我們官網上也沒有詳細的文檔對它進行介紹。所以今天我們總結了6點同學們常問的、關於 Yosemite
的知識點,希望能讓同學們更加了解這個應用的功能作用以及常見問題。
1.為什么輸入時手機輸入法的鍵盤彈不出來
很多同學剛剛用 Airtest 做輸入操作的時候,會發現安卓設備上的鍵盤都不能彈出來了,效果如圖:
其實,Yosemite
是Airtest項目專門為安卓設備准備的輸入法,它本身就是不帶軟鍵盤的,使用時只會在設備底部出現一個簡單的提示。並且只要在腳本中使用了 text()
接口,程序默認就會調用該輸入法來進行輸入操作。
2.如何快速切換設備的輸入法
用Airtest連接上我們的設備之后,當前輸入法一般就被設置成了 Yosemite
輸入法。但有時候我們想要進行手動輸入,就需要我們切換成別的輸入法了。
① 在IDE中快速切換
如果使用了IDE,我們可以在設備窗口的右上角打開 安卓手機助手 ,然后在安卓助手中快速切換輸入法,再進行手動輸入:
② 在手機設置中切換
如果同學們沒有使用IDE,也可以在手機設置中找到輸入法設置,然后將當前輸入法切換成 Yosemite
以外的輸入法即可。
3.如何用text()接口進入輸入
在腳本中,如果想要實現文字輸入,一般需要這樣的流程:
① 點一下你需要輸入的位置,激活輸入光標
② 調用Airtest的 text()
接口來輸入內容
4.Yosemite未安裝或不是當前輸入法容易出現的問題
① 設備連接不上
部分品牌的手機默認會阻止通過USB安裝應用,這樣就會導致在初始化設備的時候,不能自動安裝上 Yosemite
等apk,最終使Airtest連不上手機。除此之外,手機的當前輸入法不是 Yosemite
,也可能影響設備連接或者腳本運行。
(Airtest連接未裝上Yosemite的模擬器報錯如圖)
所以連接失敗/報錯時,我們也需要檢查下 Yosemite
等apk是否已經安裝在設備上,並把它設置為當前輸入法。尤其是很多模擬器,初始化時並不會自動安裝 Yosemite
,所以我們在連接安卓模擬器時,一般建議先手動安裝上 Yosemite.apk
。
② text()接口輸入失敗
如果 text()
接口輸入失敗,一種情況是手機阻止了 Yosemite.apk
的安裝及運行,這時候只要手動安裝上即可。另一種常見情況是部分型號的手機不允許在輸入密碼時調用第三方輸入法,這時候可以檢查手機設置中的 語言與輸入法-安全輸入
、安全鍵盤
之類的設置是不是打開的,取消這些選項之后,就可以使用非系統自帶的輸入法來輸入密碼了。
另外,有部分特殊型號的手機存在不兼容的情況,在使用 Yosemite
輸入法時容易失敗,無法輸入文字(OPPO與Vivo品牌更容易出現)。假如沒有輸入中文的需求,可以嘗試使用 adb shell input
指令來進行文字輸入:
shell("input text 'hello world'")
同時,上面這種 adb shell input
可以直接設置為默認的輸入方式,替換原先的 Yosemite
輸入,例如這樣在python代碼中這樣初始化手機:
from airtest.core.api import *
# 相當於命令行中使用 --device Android:///?ime_method=ADBIME 連接手機
init_device("Android", ime_method="ADBIME")
text("hello")
還有部分模擬器(例如夜神模擬器)在輸入時可能無法成功,可以確認下設置中是否打開了 硬件-物理鍵盤
,嘗試關閉這個選項,並設置默認輸入法為 yosemite
輸入法后,再次重試即可。
5.去哪里下載Yosemite.apk
在官網上下載一個最新的IDE包,解壓出來,在下述路徑中可以找到 Yosemite.apk
:
同理,如果需要手動安裝 pocoservice-debug.apk
等,也可以在IDE的解壓文件中找到:
6.Yosemite的錄屏功能
1.1.3和1.1.4版本的Airtest的錄屏功能也是由 Yosemite.apk
完成的。很多同學在新的測試機使用錄屏功能的時候,往往會出現錄屏失敗報錯等情況。這是因為初次使用錄屏功能時,需要手動打開設備上的 Yosemite
應用,允許 Yosemite
截取設備的屏幕內容,如果未在下述彈窗中允許截圖,將很容易導致錄屏失敗:
所以同學們在遇到錄屏失敗時,請確保已經在 Yosemite
上允許了截取功能。另外部分模擬器(eg:夜神模擬器)不支持這種錄屏方式,同學們可以嘗試更換別的模擬器。
如需要在腳本中開啟錄屏功能,可以使用 start_recording()
接口,結束錄屏時調用 stop_recording()
接口即可:
Airtest官網:http://airtest.netease.com/
Airtest教程官網:https://airtest.doc.io.netease.com/
搭建企業私有雲服務:https://airlab.163.com/b2b
轉自:https://blog.csdn.net/AirtestProject/article/details/108493205