1. 程式人生 > >APP自動化--元素操作之九宮格解鎖密碼圖案

APP自動化--元素操作之九宮格解鎖密碼圖案

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["y"] + size["height"]/6
print("第一個點的x座標:",loc_1_x,"第一個點的y座標:",loc_1_y)

ta = TouchAction(driver)
ta.press(x=loc_1_x, y=loc_1_y).wait(200).\
    move_to(x=size["width"]*2/6, y=0).wait(200).\
    move_to(x=size["width"]*2/6, y=0).wait(200).\
    move_to(x=-size["width"]*2/6, y=size["height"]*2/6).wait(200).\
    move_to(x=-size["width"]*2/6, y=size["height"]*2/6).wait(200).\
    release().wait(200).perform()

3、 九宮格是長方形的元素。根據元素的大小進行分析和計算操作方式大同小異。