当前位置:   article > 正文

【UIAutomator2】实现微信自动加好友功能_python uiautomation 微信 自动添加好友

python uiautomation 微信 自动添加好友

  【写在前头:此博客是基于python知识基础编写,仅用于个人学习使用,并非产品】

  开发思路:在实现微信自动加好友,并不是用的微信官方提供的api接口,是模拟点击手机屏幕操作。需要准备好:一部安卓手机、python环境、UIAutomator2、weditor 。
1)安卓手机:无特殊要求,能正常使用的安卓手机即可。进入设置,打开开发者模式

2)python环境:python3(习惯用anaconda来管理python版本)
3)UIAutomator2:是一个可以使用Python对Android设备进行UI自动化的库
4)weditor: weditor 工具来进行手机元素识别,将对应的元素传给UIAutomator2。

1. 环境准备

1.1 UIAutomator2安装和初始化
UIAutomator2安装

pip3 install --pre -U uiautomator2
  • 1

UIAutomator2初始化

python -m uiautomator2 init
  • 1

1.2 运行python代码的pc连接手机
手机连接pc,adb命令保证能正确读取到设备。有两种方法:
  1)通过WIFI,WiFi连接更方便一点,需要保持PC和手机使用的一个WIFI,查看手机连接WIFI的IP地址。手机的IP可以在设置-WIFI设置里面获取到。

import uiautomator2 as u2
c = u2.connect('192.168.168.108')
  • 1
  • 2

  2)通过USB数据线将手机链接电脑。手机的设备编号可以通过adb devices命令获取到。
获取手机设备编号
  下载一个adb开发工具包,配置下环境变量。连接到电脑之后,进行cmd窗口,输入如下命令,便可以查看设备的手机设备编号,

adb devices
  • 1

uiautomator2 连接设备
  通过python代码,使用uiautomator2 模块连接手机。

import uiautomator2 as u2
c = u2.connect_usb('abcdef')
  • 1
  • 2

1.3 weditor安装

pip install -U weditor
  • 1

1)pc终端输入python3 -m webditor,浏览器自动打开网页 http://atx.open.netease.com
2)网页对应位置输入手机设备ip,点击connect连接手机设备,最后根据需要获取手机/app对应元素。连接顺序如下:
  step1:设备id输入
  step2:Connect连接
  step3:reload刷新页面

1.3 准备微信号,将手机点击进入微信聊天界面
打开微信聊天界面
在这里插入图片描述

在txt文件中准备几条微信id或者手机号,一条一行,存在本机目录。
在这里插入图片描述

2. 代码展示

import uiautomator2 as u2
# 通过wifi连接
c = u2.connect('192.168.168.108')

# 读取文件中的微信账号
def readWechatID(filePath):
    lines = []
    with open(filePath, 'r') as file_to_read:
        while True:
            line = file_to_read.readline()
            if not line:
                break
            line = line.strip('\n')
            lines.append(line)
    return lines

# 通过搜索加好友
def addFriends(wechatID):
    c(resourceId="com.tencent.mm:id/l3").set_text(wechatID)
    c(resourceId="com.tencent.mm:id/n0").click()
    time.sleep(1)
    if(c.exists(text="该用户不存在")):
       print(wechatID,"该用户不存在")
       c(resourceId="com.tencent.mm:id/kz").click()
    elif(c.exists(text="添加到通讯录")):
        c(resourceId="com.tencent.mm:id/ct").click()
        time.sleep(1)
        if(c.exists(text="发消息")):
            print(wechatID,"已经是您的好友")
            c.press("back")
            c(resourceId="com.tencent.mm:id/kz").click()
        elif(c.exists(text="验证申请")):
            c(resourceId="com.tencent.mm:id/e49").set_text("111")
            c(resourceId="com.tencent.mm:id/ki").click()
            print(wechatID,"发送加好友请求成功")
            time.sleep(1)
            if(c.exists(text="验证申请")):
                print(wechatID,"请求有点频繁")
                c.press("back")
            c.press("back")
            c(resourceId="com.tencent.mm:id/kz").click()
    elif(c.exists(text="发消息")):
            print(wechatID,"已经是您的好友")
            c.press("back")
            c(resourceId="com.tencent.mm:id/kz").click()

#主函数
def main():
    #模拟点击右上角"+"按钮
    c(resourceId="com.tencent.mm:id/jb", className="android.widget.ImageView", instance=1).click() 
    time.sleep(1)
    #模拟点击添加朋友
    c(resourceId="com.tencent.mm:id/cx", text=u"添加朋友").click() 
    time.sleep(1)
    #模拟点击输入框
    c(resourceId="com.tencent.mm:id/d_4").click() 
    file_path=u'./name.txt'
    list = readWechatID(file_path)
    for i in list:
        time.sleep(1)
        addFriends(i)

#将手机点击进入微信主界面,然后运行main()程序
main()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/104261
推荐阅读
相关标签
  

闽ICP备14008679号