最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Appium自動(dòng)化測(cè)試實(shí)現(xiàn)九宮格解鎖

 更新時(shí)間:2022年02月15日 09:22:06   作者:測(cè)試之路king  
本文主要介紹了Appium自動(dòng)化測(cè)試實(shí)現(xiàn)九宮格解鎖,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

背景

我們?cè)诓僮鰽PP密碼解鎖里面就有一個(gè)九宮格滑動(dòng)解鎖,這時(shí)候我們就需要手動(dòng)連續(xù)滑動(dòng)進(jìn)行操作,前面提到的swipescroll、drag_and_drop 這些就無(wú)法實(shí)現(xiàn)解鎖操作,我們就需要學(xué)會(huì)使用高級(jí)手勢(shì)操作

高級(jí)手勢(shì)

高級(jí)手勢(shì)TouchAction可以實(shí)現(xiàn)一些針對(duì)手勢(shì)的操作,比如滑動(dòng)、長(zhǎng)按、拖動(dòng)等。我們可以將這些基本手勢(shì)組合成一個(gè)相對(duì)復(fù)雜的手勢(shì)。
想要使用TouchAction,必須要?jiǎng)?chuàng)建TouchAction對(duì)象,通過(guò)對(duì)象調(diào)用想要執(zhí)行的手勢(shì),通過(guò)perform()執(zhí)行動(dòng)作。
使用手勢(shì)操作,需要導(dǎo)入 TouchAction

from appium.webdriver.common.touch_action import TouchAction

輕敲(tap)

模擬手指對(duì)某個(gè)元素或坐標(biāo)按下并快速抬起。比如點(diǎn)擊(200, 200)的位置。

方法:

TouchAction(driver).tap(element=None, x=None, y=None)

參數(shù)可以是元素,也可以是x,y坐標(biāo)。

短按 (press)

模擬手指一直按下。

方法:

TouchAction(driver).press(el=None, x=None, y=None)

參數(shù)可以是元素,也可以是x,y坐標(biāo)。

長(zhǎng)按 (long_press)

模擬手指長(zhǎng)按幾秒。

方法:

TouchAction(driver).long_press(el=None, x=None, y=None,duration: int = 1000)

參數(shù)可以是元素,也可以是x,y坐標(biāo),默認(rèn)長(zhǎng)按 1 秒,單位毫秒

等待 (wait)

模擬手指等待,比如按下后等待5秒之后再抬起。

方法:

TouchAction(driver).wait(ms=0)

參數(shù)是暫停的毫秒數(shù)。

移動(dòng)到 (moveTo)

模擬手指移動(dòng)操作,比如,手勢(shì)解鎖需要先按下,再移動(dòng)。

方法:

TouchAction(driver).move_to(el=None, x=None, y=None)

參數(shù)可以是元素,也可以是x,y坐標(biāo)。

釋放 (release)

模擬手指抬起

方法:

TouchAction(driver).release()

模擬手指對(duì)元素或坐標(biāo)的抬起操作。

執(zhí)行 (perform)

執(zhí)行手勢(shì)操作,相當(dāng)于發(fā)送手勢(shì)操作命令到手機(jī)執(zhí)行

方法:

TouchAction(driver).perform()

九宮格解鎖

現(xiàn)在大部分九宮格就是一整個(gè)元素,所以無(wú)法通過(guò)每個(gè)點(diǎn)的元素坐標(biāo)進(jìn)行操作,只能通過(guò)先獲取元素坐標(biāo)位置,再獲取元素大小,然后切割圖片,分別計(jì)算出每個(gè)點(diǎn)的坐標(biāo)

下圖

在這里插入圖片描述

實(shí)現(xiàn)代碼

from appium.webdriver.common.touch_action import TouchAction
from appium.webdriver.common.appiumby import AppiumBy
from appium import webdriver
import time

desc = {
    "platformName": "Android",
    "platformVersion": "7.1.2",
    "deviceName": "127.0.0.1:62001",
    "appPackage": "com.android.settings",
    "appActivity": "com.android.settings.ChooseLockPattern",
    "noReset": True,
    "unicodeKeyboard": True,
    "resetKeyboard": True
}
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desc)
driver.implicitly_wait(5)

#獲取起始坐標(biāo)-九宮格左上頂點(diǎn)
loc = driver.find_element(AppiumBy.ID, "com.android.settings:id/lockPattern").location

# 獲取九宮格元素大小
loc_size = driver.find_element(AppiumBy.ID, "com.android.settings:id/lockPattern").size

# 獲取分割后的均值,即下面要用到的九宮格的步長(zhǎng)
step = loc_size["width"] / 6
step_x = loc_size["width"] / 6
step_y = loc_size["height"] / 6

# 計(jì)算出每個(gè)點(diǎn)的坐標(biāo)
point1 = (loc["x"] + step, loc["y"] + step)
point2 = (point1[0] + step * 2, point1[1])
point3 = (point2[0], point2[1] + step * 2)
point4 = (point3[0] + step * 2, point3[1])

# 進(jìn)行滑動(dòng)操作
TouchAction(driver).press(x=point1[0], y=point1[1]).wait(500). \
    move_to(x=point2[0], y=point2[1]). \
    move_to(x=point3[0], y=point3[1]). \
    move_to(x=point4[0], y=point4[1]). \
    release().perform()

time.sleep(10)
driver.quit()

說(shuō)明

在計(jì)算各個(gè)點(diǎn)的坐標(biāo)時(shí),為什么是 6 等分,我們可以大概畫一下線估算出來(lái),或者找UI設(shè)計(jì)圖可以計(jì)算

在這里插入圖片描述

到此這篇關(guān)于Appium自動(dòng)化測(cè)試實(shí)現(xiàn)九宮格解鎖的文章就介紹到這了,更多相關(guān)Appium 九宮格解鎖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

加查县| 高邮市| 寻乌县| 苏州市| 白城市| 鄂州市| 山东省| 金山区| 靖远县| 墨玉县| 汶上县| 锦州市| 和平区| 余干县| 改则县| 磐安县| 永州市| 英吉沙县| 四会市| 南涧| 芮城县| 彭泽县| 修文县| 太保市| 牙克石市| 蓬溪县| 福海县| 且末县| 石泉县| 苏尼特右旗| 本溪市| 桐乡市| 榆树市| 永年县| 长顺县| 富民县| 广丰县| 托克逊县| 龙江县| 蓬莱市| 凉城县|