• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Python+uiautomator2实现手机锁屏解锁功能

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

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

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

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

    以下图片使用Windows画图软件

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

    整个过程

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

    安装工具

    环境搭建

    安装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')

    2.使用USB连接

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

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

    抓取手机上应用的控件

    我这里使用的weditor,

    1.终端中输入 pip install weditor安装weditor

    2.终端中输入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手机锁屏解锁内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • Python绘图库Matplotlib的基本用法
    • Python matplotlib实用绘图技巧汇总
    • python 使用uiautomator2连接手机设备的实现
    • Python+uiautomator2实现自动刷抖音视频功能
    • python使用matplotlib显示图像失真的解决方案
    • 基于python的matplotlib制作双Y轴图
    • 用Python的绘图库(matplotlib)绘制小波能量谱
    • python matplotlib绘图实现删除重复冗余图例的操作
    • Python基础之画图神器matplotlib
    • python保存大型 .mat 数据文件报错超出 IO 限制的操作
    上一篇:python 使用uiautomator2连接手机设备的实现
    下一篇:python-opencv实现视频指定帧数间隔图像的保存功能
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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