RobotFramework:App九宫格滑动解锁
转自:http://blog.csdn.net/codekxx/article/details/50577381
手势密码在很多手机应用都会运到,手势密码都要求至少连接4个点,但AppiumLibrary并没有提供对应的关键字,本人尝试连续使用Swipe关键字两次解决该问题,为什么要用两次呢?因为Swipe的参数只是起点和终点,如果直接给出手势密码的起点和终点,则会忽略中间的点。
手机QQ手势密码如下:
AppiumLibrary它是开源的,就直接去修改其源代码。
于是,去到AppiumLibrary安装的文件夹,默认安装路径为:C:\Python27\Lib\site-packages\AppiumLibrary\keywords),再到keywords目录中找到_touch.py文件,就是它了。
给这个文件的类_TouchKeywords加上一个方法nine_palace_unlock,具体代码如下:
def nine_palace_unlock(self, locator):"""nine palace"""driver = self._current_application()action = TouchAction(driver) lock_pattern = driver.find_element_by_xpath(locator)x = lock_pattern.location.get('x')y = lock_pattern.location.get('y')width = lock_pattern.size.get('width')height = lock_pattern.size.get('height')offset = width / 6p11 = 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)print(p11,p12,p13)print(p21,p22,p23)print(p31,p32,p33)p2 = p12[0] - p11[0]print(p2)sleep(3)action.press(x=p11[0],y=p11[1]).move_to(x=p2,y=0).wait(1000).move_to(x=p2,y=0).wait(1000).\move_to(x=-p2,y=p2).wait(1000).move_to(x=-p2,y=p2).wait(1000).release().wait(1000).perform()
代码如下:
代码如下:
*** Settings *** Suite Setup Suite Teardown Library AppiumLibrary*** Variables ****** Test Cases ***手机QQOpen Application http://localhost:4723/wd/hub platformName=Android platformVersion=19 deviceName=127.0.0.1:21503 app=${CURDIR}${/}QQ_794.apk appPackage=com.tencent.mobileqq... appActivity=com.tencent.mobileqq.activity.SplashActivity unicodeKeyboard=True resetKeyboard=TrueWait Until Page Contains Element xpath=//android.widget.LinearLayout[@resource-id=\"com.tencent.mobileqq:id/name\"]/android.view.View[5] #等待手机QQ打开完成Nine Palace Unlock //android.widget.LinearLayout[@resource-id=\"com.tencent.mobileqq:id/name\"]/android.view.View[5] [Teardown] Close All Applications*** Keywords ***
转载于:https://www.cnblogs.com/yrxns/p/8478123.html
RobotFramework:App九宫格滑动解锁相关推荐
- 自定义控件九宫格滑动解锁
1. 前言 最近想给自己做的的app添加一个滑动解锁的功能,用的是乐视的手机,就模仿它的效果实现. 视频演示一下效果 GitHub 2. LockPoint实体 每个点是一个实体(LockPoint) ...
- Appium九宫格滑动解锁研究
九宫格滑动解锁,目前发现有两种一种是每个可点的方格都是一个imageview,九宫格则对应有9个imageview,此类解锁已有前人研究解决了,可以参照tobecrazy的博客 今天我要说的是另一种, ...
- python自动化滑动解锁_python九宫格滑动解锁
实现思路: 1.获取九宫格patterview的起始坐标x.y 2.获取九宫格patterview的宽度(width).高度(height) 3.九宫格的九个格子大约平均把patterview的长.宽 ...
- 手机九宫格滑动解锁方法种数(389112种)
有妹子问手机滑动解锁多少种方案,于是写了个记忆化搜索得出答案,也是有趣. #include <iostream> #include <algorithm> #include & ...
- 自定义view实战(11):滑动解锁九宫格控件
前言 上一篇文章用贝塞尔曲线画了一个看起来不错的小红点功能,技术上没什么难度,主要就是数学上的计算.这篇文章也差不多,模仿了一个常用的滑动解锁的九宫格控件. 需求 用过安卓的都知道,用过苹果的也知道, ...
- android自定义滑块解锁,使用Android自定义控件实现滑动解锁九宫格
本文概述: 滑动解锁九宫格的分析: 1.需要自定义控件: 2.需要重写事件onTouchEvent(); 3.需要给九个点设置序号和坐标,这里用Map类就行: 4.需要判断是否到滑到过九点之一,并存储 ...
- java实现九宫格解锁_轻松实现Android自定义九宫格图案解锁
Android实现九宫格图案解锁,自带将图案转化成数字密码的功能,代码如下: LockPatternView.java package com.jackie.lockpattern; import a ...
- 2021-10-14 Android app 九宫图案解锁实现
一.效果图如下. 二.废话不多说,直接read the fuck code. 1.代码预览 2.src\main\java\com\giada\ninelock\MainActivity.java ...
- c语言中穷竭算法,hihocoder#1054 : 滑动解锁(深度优先搜索)
描述 滑动解锁是智能手机一项常用的功能.你需要在3x3的点阵上,从任意一个点开始,反复移动到一个尚未经过的"相邻"的点.这些划过的点所组成的有向折线,如果与预设的折线在图案.方向上 ...
- Android自定义九宫格密码解锁
最终效果 相关代码 布局文件 <?xml version="1.0" encoding="utf-8"?> <androidx.constra ...
最新文章
- php 函数:func_get_args()、func_get_arg()与func_num_args()
- 做游戏开发需要具备那些知识或技能?
- zend studio调试
- python括号生成_Python括号生成器的问题
- Java中实现统计一个字符串在另一个字符串中出现的次数统计
- Div1 小A抓小B tarjan双连通分量缩点+dfs
- redhat linux 安装ftp服务,RedHat Linux 9.0为例介绍一下如何安装和配置vsftpd服务器
- JAVA集合框架及其常用方法
- python-excel写入代码
- 最新人生感悟语句摘选
- bizhubc226说明书_bizhub c226驱动下载-柯尼卡美能达c226驱动下载 v1.0官方版--pc6下载站...
- 插入耳机不识别只能外放,音频设备错误代码0xc00d36fa
- Tiki靶机(CMS漏洞)
- Gradle实践之自定义打包jar+Log开关自动关闭
- 雷电模拟器激活面具magisk教程
- [搞笑]后舍男生视频
- 测试设计点-pc端和移动端微信加入群聊
- ElasticSearch——Day04
- 穿越到东汉末年的Jackson
- TensorFlow 和 PaddlePaddle 安装对比
热门文章
- 使用强类型DataSet增加数据并获取自动增长的ID
- Tomcat—HTTPS之生成密钥库文件与配置Tomcat服务器
- Javascript中的!-- //--
- C# winform 模拟选中并点击某一行DataGridView数据
- SQL 查找是否“存在“,别再 count 了,很耗费时间的!
- Linux下启动/关闭Oracle
- 带你领略Object.assign()方法的风骚操作
- Hibernate框架入门
- vue学习-MVVM的实现原理
- 最长双重叠字符串java_java – 重复但重叠的字符串的算法