<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
我們在操作APP密碼解鎖裡面就有一個九宮格滑動解鎖,這時候我們就需要手動連續滑動進行操作,前面提到的swipe
、scroll
、drag_and_drop
這些就無法實現解鎖操作,我們就需要學會使用高階手勢操作。
高階手勢TouchAction可以實現一些針對手勢的操作,比如滑動、長按、拖動等。我們可以將這些基本手勢組合成一個相對複雜的手勢。
想要使用TouchAction,必須要建立TouchAction物件,通過物件呼叫想要執行的手勢,通過perform()執行動作。
使用手勢操作,需要匯入 TouchAction
包
from appium.webdriver.common.touch_action import TouchAction
模擬手指對某個元素或座標按下並快速擡起。比如點選(200, 200)的位置。
方法:
TouchAction(driver).tap(element=None, x=None, y=None)
引數可以是元素,也可以是x,y座標。
模擬手指一直按下。
方法:
TouchAction(driver).press(el=None, x=None, y=None)
引數可以是元素,也可以是x,y座標。
模擬手指長按幾秒。
方法:
TouchAction(driver).long_press(el=None, x=None, y=None,duration: int = 1000)
引數可以是元素,也可以是x,y座標,預設長按 1 秒,單位毫秒
模擬手指等待,比如按下後等待5秒之後再擡起。
方法:
TouchAction(driver).wait(ms=0)
引數是暫停的毫秒數。
模擬手指移動操作,比如,手勢解鎖需要先按下,再移動。
方法:
TouchAction(driver).move_to(el=None, x=None, y=None)
引數可以是元素,也可以是x,y座標。
模擬手指擡起
方法:
TouchAction(driver).release()
模擬手指對元素或座標的擡起操作。
執行手勢操作,相當於傳送手勢操作命令到手機執行
方法:
TouchAction(driver).perform()
現在大部分九宮格就是一整個元素,所以無法通過每個點的元素座標進行操作,只能通過先獲取元素座標位置,再獲取元素大小,然後切割圖片,分別計算出每個點的座標
下圖
實現程式碼
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) #獲取起始座標-九宮格左上頂點 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 # 獲取分割後的均值,即下面要用到的九宮格的步長 step = loc_size["width"] / 6 step_x = loc_size["width"] / 6 step_y = loc_size["height"] / 6 # 計算出每個點的座標 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]) # 進行滑動操作 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()
說明
在計算各個點的座標時,為什麼是 6 等分,我們可以大概畫一下線估算出來,或者找UI設計圖可以計算
到此這篇關於Appium自動化測試實現九宮格解鎖的文章就介紹到這了,更多相關Appium 九宮格解鎖內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45