app绘制手势密码 、九宫格分解
什么是九宫格?
即是我们常见的手势绘制。一共有9个点,让我们进行绘制手势。我们手动操作的时候,通过是按住第一个点,然后移动到最后一点,然后松开,就完成手势的操作,那么,如果要用自动化代码,来让其自动绘制手势,应该要怎么做呢?
分解九宫格图(放在了一个元素里面)
选一个常用的九宫格,为了方便看到九宫格点与点之间的关系,用了工具将工具放大,并加了网格,可以看到九宫格整个元素的宽、高,加上点与点之间的间隔,大致可以将九宫格的宽、高分为6份,知道之间的关系,就可以大致定位点的位置(知道移动到点里面的范围,即可选中点,不是非常精确地定位操作);如:要移动到第一点,需要到箭头1或者2的位置
下图是九宫格的手势(即经过了那些点)
各个九宫格的位置
- 首先要获取九宫格的size ,size包含了宽和高
jiu_size = driver.find_element_by_id("九宫格元素的定位").size
获取九宫格的起始坐标,再加上与九宫格的位置,
start= driver.find_element_by_id("九宫格元素的定位").location
- 第一点的位置大概占整个宽度的 1/6,第二点占 3/6,第三点占 5/6,都在同一行,高不变
points[1] = (None, start["x"] + jiu_size["width"]*1/6, start["y"]+jiu_size["height"]*1/6)
points[1] = (None, jiu_size["width"]*3/6, jiu_size["height"]*1/6)
points[1] = (None, jiu_size["width"]*5/6, jiu_size["height"]*1/6)
- 第四个点占整个高度3/6,宽度不变,变的是高度
points[1] = (None, jiu_size["width"]*5/6, jiu_size["height"]*3/6)
points[1] = (None, jiu_size["width"]*5/6, jiu_size["height"]*5/6)
- 第6个点在第三行的第二点,最后一个点在第三行第一个点,变的是宽度
points[1] = (None, jiu_size["width"]*3/6, jiu_size["height"]*3/6)
points[1] = (None, jiu_size["width"]*1/6, jiu_size["height"]*5/6)