APP自动化时,遇到九宫格不要慌。根据咱们长期的自动化经验先进行一波分析。
当有多种情况的时候,例如:
1、 九宫格是由9个元素组成。那很简单啦!可以直接定位到元素的位置,然后用模拟触屏类(TouchAction类)的方法进行一波操作即可。
2、九宫格是正方形的元素。那就先计算下,把每个点平均成6段,就可以获取到第一个点的坐标。此时就可以使用TouchAction进行,按住第一个点,然后使用move_to移动到第二个点(move_to的用法:x,y为相对上一个坐标的移动距离),最后释放release()并执行perform()。
操作效果如下:
from appium.webdriver.common.touch_action import TouchAction #模拟触屏
# 绘制九宫格
# 获取九宫格的起始坐标和大小
ele = driver.find_element_by_id("com.xxzb.fenwoo:id/gesturepwd_create_lockview")
size = ele.size # 获取元素的宽和高
start_loc = ele.location # 获取元素的坐标
print("九宫格的大小为:",size,"九宫格的起始坐标:",start_loc)
loc_1_x = start_loc["x"] + size["width"]/6
loc_1_y = start_loc[