【写在前头:此博客是基于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

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或者手机号,一条一行,存在本机目录。

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:breakline = 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()

【UIAutomator2】实现微信自动加好友功能相关推荐

  1. Python+appium+GUI界面pyside2微信自动加好友(改问候语、备注、标签)

    目录 一.项目背景 二.实现功能 三.具体实现代码 四.支持与合作 一.项目背景 首先,这是我的第一篇文章,写作功底有待提高,后续有时间我会对代码细节的讲解进行完善. 闲暇中,帮助朋友的初创公司开发了 ...

  2. (小白)python如何微信自动加好友

    小白一枚在研究python,希望获得一点小成就感. 希望可以实现微信自动加好友的功能 希望大神解答,详细一点最好(您是大佬,我是小白!!!)

  3. python+pyautogui+pyperclip实现QQ自动加好友功能

    python+pyautogui+pyperclip实现QQ自动加好友功能 在想自动加好友的时候有几个思路 1.抓包,调接口,结果发现解密挺费事的,pass 2.通过qq空间加好友功能,使用selen ...

  4. 妙用AccessibilityService黑科技实现微信自动加好友拉人进群聊

    妙用AccessibilityService黑科技实现微信自动加好友拉人进群聊 标签: 2018 引言: 在上上周的周六和周日,我发了两篇利用itchat实现微信机器人的文章(Python): 小猪的 ...

  5. 5:实战2:微信自动加好友 JavaAppium

    如果您已经看过了前三篇文章,恭喜您已经初步了解了JavaAppium.本文会利用前三篇文章的知识点实现微信自动加好友跟着我们一起来作用例设计吧. 需求分析 要实现添加好友第一步:点击添加选择添加朋友 ...

  6. 启善企业微信自动加好友助手教程

    一.打开企业微信,依次点击"通讯录"-"新的客户"-"添加" 二.打开<启善企业微信自动加好友助手>,"导入手机号&q ...

  7. 小米微信自动加好友appium

    本人小菜,喜欢编程,初来乍到,请多多关照, 只可以加能搜索到的好友... from appium import webdriver from time import sleep class Weche ...

  8. 领英辅助工具领英精灵自动加好友功能讲解

    Linkedin平台是一个关系型职业社交平台,每个Linkedin标准账号可添加3万名1度人脉.使用Linkedin的朋友都希望快速多添加好友,扩大自己的人脉圈,增加销售或就业机会. 然而手动添加好友 ...

  9. 薅羊毛!企业微信自动加好友工具免费使用机会!

    从早到晚不停地发朋友圈,回复却寥寥无几?捧着手机不断刷新消息,却没有客户找你?明明已经很努力,可却总与客户失之交臂?谁都不想被动等待,可到底该如何跟进?如何营销? 很多营销团队都在思考客流来源和转化率 ...

  10. 微信自动加好友 模拟位置

    周围朋友有做代购的想要自定义位置,并且能够搜索附近的人自动打招呼的功能. 原理其实比较简单,主要是通过地图SDK(百度,或者高德)获取对应位置经纬度,然后设置成当前位置(虚拟位置),在通过自动化测试工 ...

最新文章

  1. 正则表达式快速入门(归纳版)
  2. hdu2037 今年暑假不AC
  3. boost::test模块针对模式文件测试单元测试框架报告功能
  4. Asp.net1.0 升级 ASP.NET 2.0 的几个问题总结
  5. navicat 结合快捷键 非常好用
  6. Windows Vista桌面窗口管理器(3)
  7. history。go(-1)
  8. 在MyEclipse中安装SVN插件subclipse
  9. 网络工程师--网络安全与应用案例分析
  10. chrome 下载东西 失败禁止_chrome谷歌浏览器下载文件失败如何解决
  11. nginx重启后出现[error] open() “/usr/local/var/run/nginx/nginx.pid” failed
  12. Flink中Table Api和SQL(二)
  13. 多线程测速软件带宽叠加设置
  14. 十年一轮回,不再设限
  15. 积分(Integral)
  16. 低端N卡完美硬解1080p的WMV3
  17. C# 在Word文档中生成条形码
  18. 打听别人工资的7个话题,让你薪水更高
  19. Google的gmail帐户
  20. JAVA 黑马学习笔记记录 for switch while do...while

热门文章

  1. 入职5年前端工程师针对web前端小白,作出的职业规划建议
  2. everedit如何添加右键打开
  3. c语言中用中文转化数字,用C语言写中文数字字符串转数值变量
  4. 利用Git命令进行版本控制之常见命令汇总
  5. 亿级用户下的新浪微博平台架构解析
  6. ecshop其他页面判断是智能手机访问也跳转到ECTouch对应手机版页面[有修正]
  7. 用.net制作排序、分页及多条记录选择及删除的范例(不用.net内置的分页和排序机制)
  8. 个人电脑windows装青龙面板,本地运行,无需服务器,本人亲测成功
  9. 免费企业邮箱怎么注册申请
  10. 亚马逊linux密码,Linux、Centos、Ubuntu亚马逊服务器开启密码远程,启用root账号