為什么你的“點擊”不生效?!


前言

今天跟同學們來聊一聊點擊不生效這個問題,經常聽到答疑群里面有同學說:為什么我的代碼執行了,但實際上沒有發生點擊的動作呢?又或是,為什么我用IDE連接上了設備,卻不能點擊手機畫面呢?

下面我們就來看下,當同學們遇到各種“點擊不生效”的情況時,究竟該如何排查。

“點擊不生效”的排查辦法

1. 檢查是否使用了最新版本

① 使用AirtestIDE自帶的環境

查看當前IDE的選項--設置里面,是否自定義了python.exe的路徑,如未設置,則只需要檢查當前的AirtestIDE是否為最新版本即可,不是最新版本的話,先將其更新到最新版本:

② 使用了本地python環境

如自定義了python.exe的路徑,則表示當前未使用AirtestIDE自帶的環境,而是使用了自定義的本地python環境,則需要檢查自定義python環境里面的airtest庫是否為最新版本,如不是最新,也請把airtest庫更新到最新版。

我們可以在命令行運行 pip list 查看(如本地存在多個python環境,則需要特別注意區分自己使用的是哪個):

命令行運行或者其它python編輯器運行的情況同理,需要檢查當前運行環境里面裝的airtest庫是否為最新版。

2. 嘗試在IDE里面看看能否點擊手機畫面

① 能點擊

則排除手機設置的問題。

② 不能點擊

特別注意部分品牌手機需要開啟“允許模擬點擊位置”此類的選項,詳情可查看官方文檔:https://airtest.doc.io.netease.com/IDEdocs/device_connection/2_android_faq/#2

3. 單獨寫一個腳本,只運行點擊不生效的那條語句,運行后生成報告

這里是使用最小可復現腳本的辦法,排除其它代碼的干擾,能更快速定位到問題:

① log查看窗出現了報錯

如出現類似 Picture xxx not found in the screen 的報錯,則表明截圖識別失敗了,我們需要重新截圖;比如說截取特征更加明顯的截圖,減少混入多余的背景等等,關於如何提高截圖腳本的兼容性,我們也在之前的推文 “寫了10000條Airtest截圖腳本總結出來的截圖經驗,趕緊收藏!” 有詳細介紹,有需要的同學可以直接前往閱讀。

如出現類似 PocoNoSuchNodeException: Cannot find any visible node by xxx 的報錯,則表明查找控件失敗,需要檢查控件的定位方式是否正確,當前頁面是否存在此控件等。

② 沒報錯,但查看報告發現點到了錯誤的位置

多出現於截圖腳本:

一種情況是,當前頁面存在多個相同的截圖,實際運行時沒有點擊到你的真實目標上面,此時可以通過局部識圖、或者調整截圖的 target_pos來輔助你定位到你的真實目標上面。

另外一種情況是,識別到了毫不相干的錯誤的目標上,有可能是圖像闕值比較低,混入了錯誤的結果,可以嘗試調整闕值過濾錯誤的結果。

③ 沒報錯,但查看報告發現點擊出現了一定的位置偏移

常出現於Poco控件點擊腳本中:

首先我們可以借助IDE輔助窗的檢索控件功能,把鼠標移動到對應的控件上面,看看鎖定控件的框框是否出現了偏移,如出現了偏移,我們可以通過一些偏移修正,或者去掉手機的虛擬按鍵欄來解決,詳見我們的官方教程文檔: https://airtest.doc.io.netease.com/IDEdocs/device_connection/2_android_faq/#_9

④ 查看報告發現畫面未加載完畢就進行了點擊

當畫面未加載完全或者不夠穩定的情況下,我們立即進行了點擊操作,很可能出現點擊操作確實執行了,但應用沒能響應這個點擊的情況。

此時我們可以在點擊之前添加足夠時長的 sleep() 以保證我們的應用穩定后再進行后續的點擊操作。

小結

最后,我們提供了“點擊不生效”的自檢流程圖,有需要的同學可以保存下來自查哦!


Airtest官網https://airtest.netease.com/
Airtest教程官網https://airtest.doc.io.netease.com/
搭建企業私有雲服務https://airlab.163.com/b2b

官方答疑 Q 群:654700783

呀,這么認真都看到這里啦,幫忙點個推薦支持一下唄,灰常感謝~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM