Appium九宫格滑动解锁研究
九宫格滑动解锁,目前发现有两种一种是每个可点的方格都是一个imageview,九宫格则对应有9个imageview,此类解锁已有前人研究解决了,可以参照tobecrazy的博客
今天我要说的是另一种,九宫格显示在一个view中,类似下图所示:
对于此类滑动解锁,只能使用坐标点来滑动了,要使用坐标点九必须得到1~9这几个点在屏幕上的相对位置,要得到相对位置首先要得到元素view的起始坐标(就是左上角的x和y坐标点),然后再获取到元素的宽和高,由此可以得到1到9的这9个坐标点的x和y坐标,再利用touchaction类的方法进行封装即可,具体实现如下:
/*** 针对应用的九宫格滑动解锁,每个滑动点么有独立的元素,只能通过相对的坐标点进行滑动* @param driver* @param element*/public void unlockApp(AppiumDriver driver,WebElement element) throws Exception{TouchAction ta=new TouchAction(driver);//元素的起始x和y坐标int x=element.getLocation().getX();int y=element.getLocation().getY();//元素的宽和高int width=element.getSize().getWidth();int height=element.getSize().getHeight();//九宫格图案,对应的1-9个数字的位置int num1x=x+width/4;int num1y=y+height/4;int num4x=num1x;int num4y=y+height/2;int num7x=num1x;int num7y=y+height*3/4;int num2x=x+width/2;int num2y=y+height/4;int num5x=num2x;int num5y=y+height/2;int num8x=num2x;int num8y=y+height*3/4;int num3x=x+width*3/4;int num3y=y+height/4;int num6x=num3x;int num6y=y+height/2;int num9x=num3x;int num9y=y+height*3/4;//moveTo(x,y)滑动时需要提供相对于press坐标点的相对位置,按住一个点后,如果向左或向右滑动那么x坐标为元素宽度的1/4,y坐标为0,相对坐标值为正数时向右滑动,为负数时向左滑动//上下滑动时,x相对坐标为0,y的相对坐标为高度的height/4,相对坐标值为正数时向下滑动,为负数时向上滑动/*Z字形解锁图案*/ta.press(num1x, num1y).waitAction(500).moveTo(width/4, 0).moveTo(width/4, 0).moveTo(-width/4, height/4).moveTo(-width/4, height/4).moveTo(width/4, 0).moveTo(width/4, 0).release().perform();/*7字形解锁图案*/ta.press(num1x, num1y).waitAction(500).moveTo(width/4, 0).moveTo(width/4, 0).moveTo(0, height/4).moveTo(0, height/4).release().perform();}
滑动解锁效果图:
Appium九宫格滑动解锁研究相关推荐
- 自定义控件九宫格滑动解锁
1. 前言 最近想给自己做的的app添加一个滑动解锁的功能,用的是乐视的手机,就模仿它的效果实现. 视频演示一下效果 GitHub 2. LockPoint实体 每个点是一个实体(LockPoint) ...
- python自动化滑动解锁_python九宫格滑动解锁
实现思路: 1.获取九宫格patterview的起始坐标x.y 2.获取九宫格patterview的宽度(width).高度(height) 3.九宫格的九个格子大约平均把patterview的长.宽 ...
- 手机九宫格滑动解锁方法种数(389112种)
有妹子问手机滑动解锁多少种方案,于是写了个记忆化搜索得出答案,也是有趣. #include <iostream> #include <algorithm> #include & ...
- appium 九宫格解锁招商银行手机客户端app
之前研究了一段时间的appium for native app 相应的总结如下: appium测试环境搭建 :ht ...
- 自定义view实战(11):滑动解锁九宫格控件
前言 上一篇文章用贝塞尔曲线画了一个看起来不错的小红点功能,技术上没什么难度,主要就是数学上的计算.这篇文章也差不多,模仿了一个常用的滑动解锁的九宫格控件. 需求 用过安卓的都知道,用过苹果的也知道, ...
- android自定义滑块解锁,使用Android自定义控件实现滑动解锁九宫格
本文概述: 滑动解锁九宫格的分析: 1.需要自定义控件: 2.需要重写事件onTouchEvent(); 3.需要给九个点设置序号和坐标,这里用Map类就行: 4.需要判断是否到滑到过九点之一,并存储 ...
- Android自定义九宫格手势解锁组件
项目来源 别的不说,先看一下效果图: 九宫格手势图案解锁功能在很多应用中都在使用,本文介绍的组件来自于开源项目PatternLocker的翻写,原工程是使用Kotlin开发的,由于我们项目是使用jav ...
- 使用Python+uiautomator2实现手机锁屏解锁(期望输入的锁屏密码,基于滑动解锁)
业务需求:需要测试手机滑动解锁失败时事件的次数及等待的时间,本来想利用Python+Appium实现,但是Appium运行时自动给我解锁了.... 部分解释摘抄自:https://testerhome ...
- java实现九宫格解锁_轻松实现Android自定义九宫格图案解锁
Android实现九宫格图案解锁,自带将图案转化成数字密码的功能,代码如下: LockPatternView.java package com.jackie.lockpattern; import a ...
最新文章
- SQL SERVER的锁机制(三)——概述(锁与事务隔离级别)
- linux环境上c++ boost安装boost_1_67_0.tar
- aspen软件对电脑的要求_BIM软件对电脑配置的要求——Fuzor软件对电脑配置的要求...
- 40 | 案例篇:网络请求延迟变大了,我该怎么办?
- HTML字体小于12谷歌不兼容,Chrome谷歌浏览器下不支持css字体小于12px的解决办法【原创】...
- java 中的doit(n)_CoreJava测试题(含答案).docx
- 万年5W充电头再见!2019新iPhone或将标配18W快充头
- linux启动日志服务命令,linux命令:syslog日志服务-系统缩减之增加日志服务功能...
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-1.快速搭建SpringBoot项目,采用Eclipse...
- 全DIY主题+小工具 正版Win7桌面新体验windows7旗舰版主
- JAVA——斐波那契数列(递归)
- 你知道数字图像处理的经典Lenna图背后的故事吗
- 安卓投屏大师_【投屏】全平台全设备无线投屏工具幕享
- 一个Layered Window从支持多屏到高DPI开始,遭遇的性能雪崩及其优化历程
- 「整理了一些让人惊艳的古文情话」
- 转不撞南墙不回头——树规总结
- lisp读点坐标绘多义线_多段线点导出和导入点坐标成多段线(AutoLISP源码)——好用的AutoCAD点坐标导入导出工具...
- Android 开源OS
- 电脑使用android手机摄像头,电脑怎么使用安卓手机摄像头 电脑使用手机摄像头的方法-电脑教程...
- 计蒜客 T1817 分解质因数(数论)