Poco腳本的點擊位置與點擊偏移

1. 前言

上一期我們講了 Airtest的點擊位置與點擊偏移,這期我們繼續講一下poco的點擊位置與點擊偏移。

2. Poco的點擊位置

1)打開手機的顯示觸摸操作

以一個簡單的Poco點擊腳本爲例:

poco(text="網易雲音樂").click()

執行這條Poco腳本,會點在哪個位置上呢?同Airtest,我們可以在手機設置裏面打開諸如“顯示觸摸操作”、“顯示指針位置”的設置:

這樣我們在運行腳本過程中,會非常清晰地看到點擊位置的情況,有助於我們調試和優化腳本:

2)藉助AirtestIDE的控件檢索工具

除此之外,我們還可以藉助AirtestIDE的poco檢索工具,來查看控件的具體點擊位置,還是以手機桌面的網易雲音樂APP控件爲例:

這裏有2個屬性需要我們注意的,一個是控件的 pos 屬性,這個屬性表示控件的點擊位置,是一個相對座標(Poco使用相對座標系),通過這個屬性,我們可以知道該控件在手機畫面上的相對座標,也就是執行控件點擊時,點的相對座標。

我們可以在IDE的選項設置中,同時勾選 實時座標顯示相對座標 ,然後把鼠標移動到手機畫面上查看控件對應的相對座標:

另外一個值得關注的屬性是 anchorPoint ,這個表示控件的錨點,目前執行Poco的點擊操作時,就是點擊的控件的錨點位置,[0.5,0.5]表示控件的錨點位於控件的中心點:

特別需要注意的是, 有些控件,也特別是部分遊戲控件,錨點屬性並不是[0.5,0.5],有的是[0,0],表示該控件的錨點在控件的左上角 ,依照現在Poco的點擊規則,會點擊在控件左上角的位置上,很大可能並不會觸發有效的控件點擊(意思是,點了個寂寞...)。

那這種情況我們該如何處理呢?不着急,等會往下看Poco的點擊偏移就可以解決了!
(另外,該問題我們在下一個版本中也會修復,同學們可以期待下~)

3)藉助運行報告

除了藉助IDE的poco控件檢索工具,我們還可以直接生成一份運行報告,來查看具體的點擊情況:

3. Poco的點擊偏移

剛纔有提到,當控件的 anchorPoint 屬性是[0,0],按照現在Poco的點擊規則,會點到控件的左上角位置,未必能觸發真正的點擊,所以我們這時候可以巧妙地利用poco點擊偏移,來修正我們的點擊效果。

這個接口就是 focus。假設,目前我們有一個控件,它本身的 anchorPoint 爲[0,0],我們希望能點擊到這個控件的中心位置[0.5,0.5],就可以藉助 focus 來實現:

poco("假設的控件").focus([0.5,0.5]).click()

我們來看一個使用 focus 的簡單示例(爲了更好的看到效果,這裏使用了 long_click ):

另外,在部分全面屏設備下,可能會出現IDE檢索控件的時候會發生偏移,或者執行poco點擊腳本的時候,點擊發生了偏移,這些情況,我們可以參考官方教程文檔的內容:https://airtest.doc.io.netease.com/IDEdocs/device_connection/2_android_faq/#3

4. Poco點擊的拓展

這裏補充關於Poco點擊的2個小知識點,一個是雙擊,一個是長按:

Poco的雙擊雖然提供了接口名 double_click,但實際是沒有實現的:

poco(text="網易雲音樂").double_click()

我們在運行的時候會報 NotImplementedError 的錯誤,當然我們還可以藉助Airtest的雙擊,來實現對Poco控件的點擊:

  • 利用get_position獲取控件的相對座標
  • 將控件的相對座標轉換成絕對座標
  • 利用Airtest的double_click雙擊絕對座標

關於Poco的長按,其實剛纔我們也簡單演示一下:

poco(text="網易雲音樂").long_click()

5. 小結

關於Poco點擊的內容我們就聊到這裏,主要是分享瞭如何查看Poco的點擊位置,如何主動做偏移點擊,如何處理全面屏設備的poco點擊問題等。感興趣的同學可以收藏並且關注哦~


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

官方答疑 Q 羣:117973773

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章