iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python+uiautomator2实现手机锁屏解锁功能
  • 978
分享到

Python+uiautomator2实现手机锁屏解锁功能

Python 官方文档:入门教程 => 点击学习

摘要

业务需求:需要测试手机滑动解锁失败时事件的次数及等待的时间,本来想利用python+Appium实现,但是Appium运行时自动给我解锁了.... 部分解释摘抄自:https://testerhome.com/top

业务需求:需要测试手机滑动解失败时事件的次数及等待的时间,本来想利用python+Appium实现,但是Appium运行时自动给我解锁了....

部分解释摘抄自:https://testerhome.com/topics/11357

Python-uiautomator2是一个自动化测试开源工具,仅支持Android平台的原生应用测试

python-uiautomator2封装了谷歌自带的uiautomator2测试框架,提供便利的python接口。他允许测试人员直接在PC上编写Python的测试代码,操作手机应用,完成自动化,大大提高了自动化代码编写的效率

以下图片使用windows画图软件

如图所示,python-uiautomator2主要分为两个部分,python客户端,移动设备

  • python端: 运行脚本,并向移动设备发送Http请求
  • 移动设备:移动设备上运行了封装了uiautomator2的HTTP服务,解析收到的请求,并转化成uiautomator2的代码。

整个过程

  1. 在移动设备上安装atx-agent(守护进程), 随后atx-agent启动uiautomator2服务(默认7912端口)进行监听
  2. 在PC上编写测试脚本并执行(相当于发送HTTP请求到移动设备的server端)
  3. 移动设备通过WIFI或USB接收到PC上发来的HTTP请求,执行制定的操作

安装工具

  • Python2或者python3均可。(也可以尝试使用Android上Python客户端:QPython)
  • 移动设备

环境搭建

安装adb

如命令行可以执行adb devices,则跳过此步骤
从谷歌官网下载Android PlatfORM Tools https://developer.android.com/studio/releases/platform-tools.html,解压,并加包含adb.exe的目录加入到系统的PATH中。

安装python-uiautomator2


pip install --pre -U uiautomator2

设备安装atx-agent

首先设备连接到PC,并能够adb devices发现该设备。


# 从GitHub下载atx-agent文件,并推送到手机。在手机上安装包名为`com.github.uiautomator`的apk
$ python -m uiautomator2 init
success

最后提示success,代表atx-agent初始化成功。

应用及操作

调用uiautomator2的过程

  1. 配置手机设备参数,设置具体操作的是哪一台手机
  2. 抓取手机上应用的控件,制定对应的控件来进行操作
  3. 对抓取到的控件进行操作,比如点击、填写参数等。

配置手机设备参数

python-uiautomator2连接手机的方式有两种,一种是通过WIFI,另外一种是通过USB。两种方法各有优缺点。
WIFI最便利的地方要数可以不用连接数据线,USB则可以用在PC和手机网络不在一个网段用不了的情况。

1,使用WIFI连接

手机获取到手机的IP,并确保电脑可以PING通手机。手机的IP可以在设置-WIFI设置里面获取到。
比如手机的IP是192.168.0.100,连接设备的代码为


import uiautomator2 as u2
d = u2.connect('192.168.0.100')

使用USB连接

手机的序列号可以通过adb devices获取到,假设序列号是123456f,连接代码为


import uiautomator2 as u2
d = u2.connect_usb('123456f')

抓取手机上应用的控件

我这里使用的weditor,

终端中输入 pip install weditor安装weditor

终端中输入python -m weditor启动weditor

下图为网页的截图

然后再选取元素定位就可以完成本次需求

代码如下:


#_*_ coding:utf-8_*_
import uiautomator2 as u2
import re
import time
 
STOP_COUNT=150
d = u2.connect()
 
#输入滑动解锁码
def do_password(count):
    #通过weditor获取到的图案位置
    d.swipe_points([(0.304, 0.431), (0.507, 0.435), (0.5, 0.636)], 0.1)
 
 
#检验是否输入正确
def do_check():
    #检查输入密码是否达到现在
    if d(resourceId="android:id/message").exists:
        message = d(resourceId="android:id/message").get_text()
        #取得输密码的次数
        times = re.findall('\d+', message)[0]
        #需要等待的时间
        timeout = re.findall('\d+', message)[1]
        print("暂时不能输入密码,这是第$s次输入,需要等待%s才可以再次输入" % (times, timeout))
        return True, times, timeout
    else:
        print("可以输入")
        return False, 0, 0
 
 
count = 0
 
while True:
    ret, times, timeout = do_check()
    if ret:
        d.screenshot(times + "times_" + timeout + "s.jpg")
        if int(times) >= STOP_COUNT:
            break
        time.sleep(int(timeout))
        d(resourceId="android:id/button3").click()
    count = count + 1
    do_password(count)

效果图:

到此这篇关于Python+uiautomator2实现手机锁屏解锁功能的文章就介绍到这了,更多相关python uiautomator2手机锁屏解锁内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python+uiautomator2实现手机锁屏解锁功能

本文链接: https://www.lsjlt.com/news/10539.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • CSS3怎么实现手机滑动解锁功能
    本篇内容主要讲解“CSS3怎么实现手机滑动解锁功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS3怎么实现手机滑动解锁功能”吧!该效果的主要实现思路是给文...
    99+
    2024-04-02
  • Android实现一键锁屏功能
    android实现一键锁屏 创建AdminReceiver import android.app.admin.DeviceAdminReceiver; public class Ad...
    99+
    2022-11-13
    android一键锁屏 android锁屏
  • js实现自动锁屏功能
    1.使用场景 有这么一个需求,开发了一套系统,当用户离开桌面或者一段时间不操作的话,需要把该系统所有打开页面锁定起来,就跟桌面锁屏一样,只能输入密码验证成功后,或者重新登录,才可以...
    99+
    2024-04-02
  • 怎么使用Python实现windows倒计时锁屏功能
    这篇文章主要介绍了怎么使用Python实现windows倒计时锁屏功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Python实现windows倒计时锁屏功能文章都会有所收获,下面我们一起来看看吧。实...
    99+
    2023-07-06
  • 如何使用Python实现windows倒计时锁屏功能
    实现思路1)主要介绍了python实现windows倒计时锁屏功能python实现实windows倒计时锁屏功能 # 倒计时锁屏 import time from ctypes import * def closewindows(close...
    99+
    2023-05-14
    Python Windows
  • 微信小程序如何实现手势图案锁屏功能
    这篇文章给大家分享的是有关微信小程序如何实现手势图案锁屏功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。效果图WXML<view class="con...
    99+
    2024-04-02
  • vue实现滑动解锁功能
    本文实例为大家分享了vue实现滑动解锁功能的具体代码,供大家参考,具体内容如下 话不多说,直接上代码; <template>   <div>     &...
    99+
    2024-04-02
  • 使用JavaScript怎么实现自动锁屏功能
    这篇文章将为大家详细讲解有关使用JavaScript怎么实现自动锁屏功能,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.使用场景有这么一个需求,开发了一套系统,当用户离开桌面或者一段时间不...
    99+
    2023-06-15
  • vue项目记录锁定和解锁功能实现
    本文实例为大家分享了vue项目记录锁定和解锁功能实现代码,供大家参考,具体内容如下 一、定义 api 模块 import request from '@/utils/request'...
    99+
    2024-04-02
  • 怎么使用HTML5制作屏幕手势解锁功能
    这篇文章主要介绍怎么使用HTML5制作屏幕手势解锁功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!实现原理 利用HTML5的canvas,将解锁的圈圈划出,利用touch事件解锁这...
    99+
    2024-04-02
  • 使用canvas怎么实现一个手势解锁功能
    使用canvas怎么实现一个手势解锁功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。手势解锁通过手指将屏幕上的九个点依次连接起来形成一个图案,所以叫图案解锁。...
    99+
    2023-06-09
  • canvas如何实现手机的手势解锁
    这篇文章给大家分享的是有关canvas如何实现手机的手势解锁的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体如下:按照国际惯例,先放效果图1、js动态初始化Dom结构首先在index.html中添加基本样式bo...
    99+
    2023-06-09
  • vue怎么实现滑动解锁功能
    本文小编为大家详细介绍“vue怎么实现滑动解锁功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue怎么实现滑动解锁功能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。效果如下话不多说,直接上代码;<te...
    99+
    2023-06-29
  • 基于Flutter实现手势密码加密与解锁功能
    目录前言1、绘制静态图形2、存储手势密码数据3、添加手势交互4、绘制、刷新密码线5、加入密码错误动画总结前言 密码的由来:在公元前405年,由古希腊和斯巴达的战争中,由于斯巴达盟友波...
    99+
    2024-04-02
  • Python打工人必备之windows倒计时锁屏功能的实现
    目录前言实现思路前言 又见面了,小伙伴儿们,发现最近大家喜欢看一些简单的小案例?! 咳咳,下面进入正题。 每个人的电脑里都会有不想让别人知道的隐私,或者是上班时间偷偷摸鱼怕被发现的小...
    99+
    2023-05-14
    Python windows倒计时锁屏 Python 倒计时锁屏 Python 倒计时 Python 锁屏
  • Python+uiautomator2实现自动刷抖音视频功能
    工具准备 Python3.7.7 adb(Android debug bridge) uiautomatorviewer 安装adb 官网地址:https...
    99+
    2024-04-02
  • Win8.1系统怎么禁用锁屏功能 关闭Win8.1锁屏方法教程图解
    锁屏是Win8/Win8.1系统的一个新功能,在开机以及长时间离开电脑屏幕后,Win8就会进入锁屏界面。Win8/Win8.1锁屏界面提供了天气、日历以及通知信息等东西,对于有些用户来说,可能比较实用,但还有一些追求极简...
    99+
    2023-06-03
    Win8.1 禁用锁屏 锁屏 系统 教程 方法
  • 原生js实现简单滑动解锁功能 js实现滑动拼图解锁
    本文实例为大家分享了js实现简单滑动解锁功能以及滑动拼图解锁的具体代码,供大家参考,具体内容如下 简单实现滑动解锁,效果图是这样的 <!DOCTYPE html> &l...
    99+
    2024-04-02
  • 如何实现Oracle11g用户修改密码及加锁解锁功能
    小编给大家分享一下如何实现Oracle11g用户修改密码及加锁解锁功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.运行 c...
    99+
    2024-04-02
  • win10锁屏聚焦功能不更新怎么解决
    这篇文章主要介绍“win10锁屏聚焦功能不更新怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“win10锁屏聚焦功能不更新怎么解决”文章能帮助大家解决问题。win10锁屏聚焦功能不更新原因:针...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作