python图案绘制解锁_PythonAppium实现安卓手机图形解锁详解
首先,在解锁状态下,建立一个Session,打开APP。然后,调用press_keycode()方法传入整型数值"26",锁定屏幕。通过implicitly_wait()方法等待两秒后,再次调用press_keycode()方法按下电源键,点亮屏幕。这时候看到的手机界面如下所示:
此时,我们需要调用login_unlock()方法绘制图案解锁手机(预先设置好的解锁图形如上图所示)。
login_unlock()方法的详细介绍如下:
1、通过find_element_by_id()方法找到九宫格的View。
lock_pattern = self.driver.find_element_by_id("com.android.keyguard:id/lockPatternView")
2、通过lock_pattern变量获取View的初始坐标值和宽度高度。
x = lock_pattern.location.get('x')
y = lock_pattern.location.get('y')
width = lock_pattern.size.get('width')
height = lock_pattern.size.get('height')
3、通过宽度计算偏移量。
offset = width / 6
4、通过偏移量计算九宫格内九个点各自的x,y坐标值。
p11 = int(x + width / 6), int(y + height / 6)
p12 = int(x + width / 2), int(y + height / 6)
p13 = int(x + width - offset), int(y + height / 6)
p21 = int(x + width / 6), int(y + height / 2)
p22 = int(x + width / 2), int(y + height / 2)
p23 = int(x + width - offset), int(y + height / 2)
p31 = int(x + width / 6), int(y + height - offset)
p32 = int(x + width / 2), int(y + height - offset)
p33 = int(x + width - offset), int(y + height - offset)
5、计算从当前点移动到下一个点的偏移量。
p3 = p13[0] - p11[0]
6、执行移动操作。
TouchAction(self.driver).press(x=p11[0], y=p11[1]).move_to(x=p3, y=0).wait(1000).move_to(x=0, y=p3).wait(1000).release().perform()
完整代码如下:
import unittest
from appium import webdriver
from appium.webdriver.common.touch_action import TouchAction
from time import sleep
# 图形解锁
class unlockTest(unittest.TestCase):
def test_unlock(self):
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '4.4.4'
desired_caps['app'] = '/Users/a140/Downloads/test.apk'
desired_caps['deviceName'] = '03083025d0250909'
self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
# 按电源键,锁屏
self.driver.press_keycode(26)
self.driver.implicitly_wait(2)
# 按电源键,解锁
self.driver.press_keycode(26)
# 调用解锁的方法
self.login_unlock()
# 解锁
def login_unlock(self):
# 通过ID找到九宫格的View
lock_pattern = self.driver.find_element_by_id("com.android.keyguard:id/lockPatternView")
# 获取View的x,y坐标值
x = lock_pattern.location.get('x')
y = lock_pattern.location.get('y')
# 获取View的宽度和高度
width = lock_pattern.size.get('width')
height = lock_pattern.size.get('height')
# 偏移量
offset = width / 6
# 计算九宫格内九个点的x,y坐标值
p11 = int(x + width / 6), int(y + height / 6)
p12 = int(x + width / 2), int(y + height / 6)
p13 = int(x + width - offset), int(y + height / 6)
p21 = int(x + width / 6), int(y + height / 2)
p22 = int(x + width / 2), int(y + height / 2)
p23 = int(x + width - offset), int(y + height / 2)
p31 = int(x + width / 6), int(y + height - offset)
p32 = int(x + width / 2), int(y + height - offset)
p33 = int(x + width - offset), int(y + height - offset)
# 计算移动到下一个点的偏移量
p3 = p13[0] - p11[0]
sleep(3)
# 执行移动操作
TouchAction(self.driver).press(x=p11[0], y=p11[1]).move_to(x=p3, y=0).wait(1000).move_to(x=0, y=p3).wait(
1000).release().perform()
if __name__ == '__main__':
suite = unittest.TestLoader().loadTestsFromTestCase(unlockTest)
unittest.TextTestRunner(verbosity=2).run(suite)
python图案绘制解锁_PythonAppium实现安卓手机图形解锁详解相关推荐
- python图案绘制解锁_PythonAppium实现安卓手机图形解锁
首先,在解锁状态下,建立一个Session,打开APP.然后,调用press_keycode()方法传入整型数值"26",锁定屏幕.通过implicitly_wait()方法等待两 ...
- python图案绘制解锁_PythonAppium实现安卓手机图形解锁案例
首先,在解锁状态下,建立一个Session,打开APP.然后,调用press_keycode()方法传入整型数值"26",锁定屏幕.通过implicitly_wait()方法等待两 ...
- 手机OTG 我的世界_【新品教程】GP100安卓手机OTG功能详解
GP-100已经上市一段时间了,大家在享受它带来的美妙音色的同时也在探索着它的其他功能,比如OTG连接功能.最近我们也收到了很多朋友的私信询问OTG功能的一些问题,很多问题都是关于GP-100怎么在安 ...
- Python Matplotlib绘制柱状图(bar和barh函数)详解
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...
- excel打开密码忘记了_安卓手机忘记解锁密码怎么办?三招教你打开手机
安卓手机忘记解锁密码怎么办?三招教你打开手机 手机忘记了解锁密码?某些马虎或记性不好的用户,把密码设的过于复杂,可能就会遇到此类情况.拿去手机店,一般都会给你刷机,但是这种方法处理后里面的联系人,短信 ...
- 安卓系统的指纹解锁_安卓手机指纹解锁 手机指纹解锁怎么用 无良小偷的克星 好好玩...
现在人都比较在乎空间和安全,安全就不用说了,不管什么的安全都特别在意,越安全越好.就拿手机来说,现在的人都离不开的一个物件,哪怕自己不小心把手机遗忘在什么地方,也不希望别人看到自己手机中的任何个人信息 ...
- python怎么安装myqr模块-python二维码操作:对QRCode和MyQR入门详解
python是所有编程语言中模块最丰富的 生活中常见的二维码功能在使用python第三方库来生成十分容易 三个大矩形是定位图案,用于标记二维码的大小.这三个定位图案有白边,通过这三个矩形就可以标识一个 ...
- 圆形界面 开启相机_「基础篇三」手机摄影拍照界面详解
[基础篇三]手机摄影拍照界面详解 手机拍照对我们来说已习以为常,每天我们都会用手机相机功能或多或少的拍出几张照片.故手机拍照界面对我们来说也不陌生,但手机拍照界面上的那些按钮,那些功能你都用过吗?你 ...
- python统计csv行数_对Python 多线程统计所有csv文件的行数方法详解
如下所示: #统计某文件夹下的所有csv文件的行数(多线程) import threading import csv import os class MyThreadLine(threading.Th ...
最新文章
- windows消息队列。DispatchMessage。 PostMessage
- spring:《spring实战》读后感一
- 在使用.Net Reflector时发现了一个Bug:)
- PMAboutView
- brand.php dnfire.cn_能美火灾报警_能美西科姆消防报警主机如何屏蔽故障点_滁州气象...
- 理解并取证:DLS网络架构和PPPOE数据帧
- [XSY] 绿色(圆方树、树形DP、树上差分)
- 分布式文件系统-HDFS( HDFS全称是Hadoop Distributed System)
- mysql关键字及其用法_mysql的优化-explain
- Mac电脑如何调整鼠标灵敏度
- 所谓周末,就是在家好好做饭、好好睡觉、好好玩游戏
- 【路径大全】iphone所有文件路径。CYDIA
- Win10+Ubuntu+Deepin+macOS+PhoenixOS+FydeOS+centOS+openSUSE+Kylin+ChromeOS+RedFlag等多系统安装(包含rEFind引导)
- python+selenium h5新浪微博自动点赞
- 对学计算机学生礼仪,计算机系学生分会社团部主持人和礼仪队选拔大赛计划1.doc...
- 那个经常加班的人后来怎么样了?
- 气“疯”了!| 经济学人全球早读精选
- 小知识点:抛物线的顶点式方程
- (AI)人工智能导论实验【A* 算法】
- vue+elementui Table组件splice删除表格总是删除最后一行
热门文章
- ✖ 48 problems (48 errors, 0 warnings) 45 errors and 0 warnings potentially fixable with the `--fix
- 高德地图截屏、标记鼠标跟随示例
- PHP中.=和+=是什么意思详解
- WIN32,GetBitmapBits与GetPixel
- Java做图片上传、文件上传、 批量上传、 Base64图片上传 。附上源码
- 读javascript高级程序设计-目录
- linux常用命令(包含系统命令)
- 千万别再乱点黄色APP了!
- win7 安装openssh_Windows安装OpenSSH服务
- HHDBCS及HHDESK的资源加密功能