天天看點

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、 九宮格是長方形的元素。根據元素的大小進行分析和計算操作方式大同小異。

部落客原創,若轉載請标明出處:https://mp.csdn.net/postedit/83012109

繼續閱讀