场景描述:
小程序端定位元素有无法定位弹出层内容的问题(自动化工具只能识别到背景主层,无法识别到弹出层)
解决思路:
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
如此,即显示了屏幕画面的滚动操作。进而实现坐标值对应,完成后续点击操作
特别注意,弹出层的元素定位一定是通过定位背景层元素实现的,所以弹出层通过元素内容定位的方式是无效的,得着到背景层内容