欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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 等分,我們可以大概畫(huà)一下線估算出來(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)文章

  • 利用Python爬取微博數(shù)據(jù)生成詞云圖片實(shí)例代碼

    利用Python爬取微博數(shù)據(jù)生成詞云圖片實(shí)例代碼

    這篇文章主要給大家介紹了關(guān)于利用Python爬取微博數(shù)據(jù)生成詞云圖片的相關(guān)資料,文中通過(guò)示例代碼介紹非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • tensorflow基本操作小白快速構(gòu)建線性回歸和分類(lèi)模型

    tensorflow基本操作小白快速構(gòu)建線性回歸和分類(lèi)模型

    這篇文章主要介紹了tensorflow基本操作,快速構(gòu)建線性回歸和分類(lèi)模型,圖文代碼示例非常詳細(xì),有需要的朋友可以借鑒參考下,希望可以對(duì)大家有所幫助
    2021-08-08
  • Python如何批量生成和調(diào)用變量

    Python如何批量生成和調(diào)用變量

    這篇文章主要介紹了Python如何批量生成和調(diào)用變量,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-11-11
  • 使用Python遍歷文件夾實(shí)現(xiàn)查找指定文件夾

    使用Python遍歷文件夾實(shí)現(xiàn)查找指定文件夾

    這篇文章主要為大家介紹了如何使用Python遍歷文件夾從而實(shí)現(xiàn)查找指定文件夾下所有相同名稱(chēng)的文件、所有相同后綴名的文件,感興趣的可以了解一下
    2022-07-07
  • 詳解用Python調(diào)用百度地圖正/逆地理編碼API

    詳解用Python調(diào)用百度地圖正/逆地理編碼API

    這篇文章主要介紹了詳解用Python調(diào)用百度地圖正/逆地理編碼API,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 10個(gè)Python常用的損失函數(shù)及代碼實(shí)現(xiàn)分享

    10個(gè)Python常用的損失函數(shù)及代碼實(shí)現(xiàn)分享

    損失函數(shù)是一種衡量模型與數(shù)據(jù)吻合程度的算法。損失函數(shù)測(cè)量實(shí)際測(cè)量值和預(yù)測(cè)值之間差距的一種方式。本文為大家總結(jié)了10個(gè)常用的損失函數(shù)及Python代碼實(shí)現(xiàn),需要的可以參考一下
    2022-09-09
  • tensorflow實(shí)現(xiàn)二維平面模擬三維數(shù)據(jù)教程

    tensorflow實(shí)現(xiàn)二維平面模擬三維數(shù)據(jù)教程

    今天小編就為大家分享一篇tensorflow實(shí)現(xiàn)二維平面模擬三維數(shù)據(jù)教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • python torch.utils.data.DataLoader使用方法

    python torch.utils.data.DataLoader使用方法

    這篇文章主要介紹了python torch.utils.data.DataLoader使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • python函數(shù)enumerate,operator和Counter使用技巧實(shí)例小結(jié)

    python函數(shù)enumerate,operator和Counter使用技巧實(shí)例小結(jié)

    這篇文章主要介紹了python函數(shù)enumerate,operator和Counter使用技巧,結(jié)合實(shí)例形式總結(jié)分析了python內(nèi)置函數(shù)enumerate,operator和Counter基本功能、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-02-02
  • Python字符串匹配之6種方法的使用詳解

    Python字符串匹配之6種方法的使用詳解

    這篇文章主要介紹了Python字符串匹配之6種方法的使用詳解,在文末給大家提到了python正則表達(dá)的說(shuō)明,感興趣的朋友跟隨小編一起學(xué)習(xí)吧
    2019-04-04

最新評(píng)論