转自: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. 自定义控件九宫格滑动解锁

    1. 前言 最近想给自己做的的app添加一个滑动解锁的功能,用的是乐视的手机,就模仿它的效果实现. 视频演示一下效果 GitHub 2. LockPoint实体 每个点是一个实体(LockPoint) ...

  2. Appium九宫格滑动解锁研究

    九宫格滑动解锁,目前发现有两种一种是每个可点的方格都是一个imageview,九宫格则对应有9个imageview,此类解锁已有前人研究解决了,可以参照tobecrazy的博客 今天我要说的是另一种, ...

  3. python自动化滑动解锁_python九宫格滑动解锁

    实现思路: 1.获取九宫格patterview的起始坐标x.y 2.获取九宫格patterview的宽度(width).高度(height) 3.九宫格的九个格子大约平均把patterview的长.宽 ...

  4. 手机九宫格滑动解锁方法种数(389112种)

    有妹子问手机滑动解锁多少种方案,于是写了个记忆化搜索得出答案,也是有趣. #include <iostream> #include <algorithm> #include & ...

  5. 自定义view实战(11):滑动解锁九宫格控件

    前言 上一篇文章用贝塞尔曲线画了一个看起来不错的小红点功能,技术上没什么难度,主要就是数学上的计算.这篇文章也差不多,模仿了一个常用的滑动解锁的九宫格控件. 需求 用过安卓的都知道,用过苹果的也知道, ...

  6. android自定义滑块解锁,使用Android自定义控件实现滑动解锁九宫格

    本文概述: 滑动解锁九宫格的分析: 1.需要自定义控件: 2.需要重写事件onTouchEvent(); 3.需要给九个点设置序号和坐标,这里用Map类就行: 4.需要判断是否到滑到过九点之一,并存储 ...

  7. java实现九宫格解锁_轻松实现Android自定义九宫格图案解锁

    Android实现九宫格图案解锁,自带将图案转化成数字密码的功能,代码如下: LockPatternView.java package com.jackie.lockpattern; import a ...

  8. 2021-10-14 Android app 九宫图案解锁实现

    一.效果图如下.  二.废话不多说,直接read the fuck code. 1.代码预览 2.src\main\java\com\giada\ninelock\MainActivity.java ...

  9. c语言中穷竭算法,hihocoder#1054 : 滑动解锁(深度优先搜索)

    描述 滑动解锁是智能手机一项常用的功能.你需要在3x3的点阵上,从任意一个点开始,反复移动到一个尚未经过的"相邻"的点.这些划过的点所组成的有向折线,如果与预设的折线在图案.方向上 ...

  10. Android自定义九宫格密码解锁

    最终效果 相关代码 布局文件 <?xml version="1.0" encoding="utf-8"?> <androidx.constra ...

最新文章

  1. php 函数:func_get_args()、func_get_arg()与func_num_args()
  2. 做游戏开发需要具备那些知识或技能?
  3. zend studio调试
  4. python括号生成_Python括号生成器的问题
  5. Java中实现统计一个字符串在另一个字符串中出现的次数统计
  6. Div1 小A抓小B tarjan双连通分量缩点+dfs
  7. redhat linux 安装ftp服务,RedHat Linux 9.0为例介绍一下如何安装和配置vsftpd服务器
  8. JAVA集合框架及其常用方法
  9. python-excel写入代码
  10. 最新人生感悟语句摘选
  11. bizhubc226说明书_bizhub c226驱动下载-柯尼卡美能达c226驱动下载 v1.0官方版--pc6下载站...
  12. 插入耳机不识别只能外放,音频设备错误代码0xc00d36fa
  13. Tiki靶机(CMS漏洞)
  14. Gradle实践之自定义打包jar+Log开关自动关闭
  15. 雷电模拟器激活面具magisk教程
  16. [搞笑]后舍男生视频
  17. 测试设计点-pc端和移动端微信加入群聊
  18. ElasticSearch——Day04
  19. 穿越到东汉末年的Jackson
  20. TensorFlow 和 PaddlePaddle 安装对比

热门文章

  1. 使用强类型DataSet增加数据并获取自动增长的ID
  2. Tomcat—HTTPS之生成密钥库文件与配置Tomcat服务器
  3. Javascript中的!-- //--
  4. C# winform 模拟选中并点击某一行DataGridView数据
  5. SQL 查找是否“存在“,别再 count 了,很耗费时间的!
  6. Linux下启动/关闭Oracle
  7. 带你领略Object.assign()方法的风骚操作
  8. Hibernate框架入门
  9. vue学习-MVVM的实现原理
  10. 最长双重叠字符串java_java – 重复但重叠的字符串的算法