場景描述:
小程序端定位元素有無法定位彈出層內容的問題(自動化工具只能識別到背景主層,無法識別到彈出層)
解決思路:
1、彈出層元素與背景主層元素位置一致,當點擊出彈出層時,在定位背景主層即可定位到彈出層元素
如上,彈層紅色箭頭指向“紅色”規格按鈕,常規定位方法是無法點擊到的。該按鈕坐標背景層對應元素為“¥500.00”,則先點開彈出層,在定位“¥500.00”即可實現對“紅色”的點擊
問題的關鍵在於,“紅色”的坐標與“¥500.00”並不會完全一致,遇到對應的坐標無其他元素的情況,則需要滑動屏幕,使“¥500.00”位置剛好與“紅色”一致。
Robotframework提供“Swipe”指令來操縱屏幕滑動。
首先要了解屏幕坐標信息
上圖為手機屏幕坐標XY軸圖,最左上角是0點,X向右,Y向下延伸
我們通過uiautomatorviewer定位到元素會查看到一個坐標值
如上圖“小程序自動化店鋪”元素定位后,查看坐標值如下
兩個括號里對應的是兩個點,左邊括號對應的是左上角的點,右邊對應的是右下角點,通過兩個點來實現整個區域的定位
滾動的步驟:
原理:首先獲取滾動前元素坐標,滾動后,再獲取原元素坐標。
Robotframework的書寫方法為
Swipe 21 900 21 698 duration=2000
[21,900]對應滾動前的坐標[21,689]對應滾動后的坐標 duration=2000 表示滾動預定延時2000ms
如此,即顯示了屏幕畫面的滾動操作。進而實現坐標值對應,完成后續點擊操作
特別注意,彈出層的元素定位一定是通過定位背景層元素實現的,所以彈出層通過元素內容定位的方式是無效的,得着到背景層內容