赞
踩
【写在前头:此博客是基于python知识基础编写,仅用于个人学习使用,并非产品】
开发思路:在实现微信自动加好友,并不是用的微信官方提供的api接口,是模拟点击手机屏幕操作。需要准备好:一部安卓手机、python环境、UIAutomator2、weditor 。
1)安卓手机:无特殊要求,能正常使用的安卓手机即可。进入设置,打开开发者模式。
2)python环境:python3(习惯用anaconda来管理python版本)
3)UIAutomator2:是一个可以使用Python对Android设备进行UI自动化的库
4)weditor: weditor 工具来进行手机元素识别,将对应的元素传给UIAutomator2。
1.1 UIAutomator2安装和初始化
UIAutomator2安装
pip3 install --pre -U uiautomator2
UIAutomator2初始化
python -m uiautomator2 init
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')
2)通过USB数据线将手机链接电脑。手机的设备编号可以通过adb devices命令获取到。
【获取手机设备编号】
下载一个adb开发工具包,配置下环境变量。连接到电脑之后,进行cmd窗口,输入如下命令,便可以查看设备的手机设备编号,
adb devices
【uiautomator2 连接设备】
通过python代码,使用uiautomator2 模块连接手机。
import uiautomator2 as u2
c = u2.connect_usb('abcdef')
1.3 weditor安装
pip install -U weditor
1)pc终端输入python3 -m webditor,浏览器自动打开网页 http://atx.open.netease.com
2)网页对应位置输入手机设备ip,点击connect连接手机设备,最后根据需要获取手机/app对应元素。连接顺序如下:
step1:设备id输入
step2:Connect连接
step3:reload刷新页面
1.3 准备微信号,将手机点击进入微信聊天界面
打开微信聊天界面
在txt文件中准备几条微信id或者手机号,一条一行,存在本机目录。
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()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。