文章目录

  • 1. 环境配置
    • 1.1. JDK
      • 1.1.1. 下载安装
      • 1.1.2. 环境变量
    • 1.2. Android SDK
      • 1.2.1. 下载解压
      • 1.2.2. 环境变量
    • 1.3. Appium
      • 1.3.1. 下载解压
      • 1.3.2. 编辑配置
      • 1.3.3. 模块安装
    • 1.4. MuMu
  • 2. 连接模拟器
  • 3. 启动服务器
  • 4. 启动微信
  • 5. 连接测试
  • 6. 微信编程
    • 6.1. 具体流程
    • 6.2. 完整代码
    • 6.3. 元素定位
  • 7. 引用参考
  • 8. 温馨提示

1. 环境配置

  • JDK
  • Android SDK
  • Appium
  • MuMu

1.1. JDK

华为云JDK镜像:https://mirrors.huaweicloud.com/java/jdk/

1.1.1. 下载安装

去华为云镜像下载JDK,我下载的版本是:jdk-8u181-windows-x64.exe

1.1.2. 环境变量

1、环境变量->系统变量->新建:变量名JAVA_HOME,变量值D:\Program Files\Java\jdk1.8.0_181

2、环境变量->系统变量->Path->编辑->编辑文本:在变量值末尾添加%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

1.2. Android SDK

安卓开发工具网:https://www.androiddevtools.cn/

1.2.1. 下载解压

1、下载SDK Tools,我下载的版本是android-sdk_r24.4.1-windows.zip,把解压出来的android-sdk-windows文件夹放到D:\Program Files目录下。

2、下载SDK Platform-Tools,我下载的版本是platform-tools_r22-windows.zip,把解压出来的platform-tools文件夹放在D:\Program Files\android-sdk-windows目录下。

3、下载Build-Tools,我下载的版本是21.1.2.rar,解压后将21.1.2文件夹放到D:\Program Files\android-sdk-windows\build-tools目录下。

1.2.2. 环境变量

1、环境变量->系统变量->新建:变量名ANDROID_HOME,变量值D:\Program Files\android-sdk-windows

2、环境变量->系统变量->Path->编辑->编辑文本:在变量值末尾添加%ANDROID_HOME%\tools;%ANDROID_HOME%\build-tools\21.1.2;%ANDROID_HOME%\platform-tools;

1.3. Appium

github:https://github.com/appium/appium-desktop/releases/

1.3.1. 下载解压

从上述github地址下载Appium,我下载的版本是Appium-windows-1.18.3.zip,无需安装,解压即可。

1.3.2. 编辑配置

1、双击Appium.exe运行软件,点击编辑配置

2、它这里已经把我们之前配置的JAVA_HOMEANDROID_HOME自动补上了,我们就不用填了,如果没有,请再填一下

1.3.3. 模块安装

pip install appium-python-client

1.4. MuMu

MuMu官网:http://mumu.163.com/

从官网下载并安装网易MuMu模拟器(非手游助手)。安装模拟器后,去应用中心下载并安装微信,然后登录。

2. 连接模拟器

打开cmd控制台,输入命令adb connect 127.0.0.1:7555即可连接模拟器。

Microsoft Windows [版本 10.0.18363.1198]
(c) 2019 Microsoft Corporation。保留所有权利。C:\Users\ghgxj>adb connect 127.0.0.1:7555
connected to 127.0.0.1:7555

3. 启动服务器

1、点击启动

2、启动成功

3、要一直保持Appium服务器运行,不能将它的窗口关闭

4. 启动微信

获取微信的appPackage和appActivity

1、在mumu中打开并登录微信,然后cmd中运行下方命令:

adb shell dumpsys activity recents | find "intent={"

2、找到cmp=com.tencent.mm/.ui.LauncherUI

3、/前面的com.tencent.mm就是appPackage

4、/后面的.ui.LauncherUIappActivity

5、这两个参数我们写python代码的时候会用到

5. 连接测试

mumu中先关闭微信窗口,然后运行下方代码的同时观察mumu模拟器,如果微信启动则说明连接成功。

from appium import webdriver
caps = {"platformName": "Android","deviceName": "emulator-5554","platformVersion": "6.0.1","appPackage": "com.tencent.mm","appActivity": ".ui.LauncherUI","noReset": "True","unicodeKeyboard": "True","resetKeyboard": "True"
}
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', caps)

6. 微信编程

既然已经能通过python代码连接微信了,下面我们来操作微信实现一个简单的通过微信号添加好友的功能。

6.1. 具体流程

  1. 点击⊕号
  2. 点击添加朋友
  3. 点击搜索框
  4. 输入微信号
  5. 点击搜索
  6. 点击名片
  7. 点击添加到通讯录
  8. 点击发送

6.2. 完整代码

from appium import webdriver
import time
# 连接手机微信
caps = {"platformName": "Android","deviceName": "emulator-5554","platformVersion": "6.0.1","appPackage": "com.tencent.mm","appActivity": ".ui.LauncherUI","noReset": "True","unicodeKeyboard": "True","resetKeyboard": "True"
}
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', caps)
# 发送好友申请
try:time.sleep(10)print('点击⊕号')driver.find_element_by_id('com.tencent.mm:id/ef9').click()time.sleep(5)print('点击添加朋友')driver.find_elements_by_id('com.tencent.mm:id/gam')[1].click()time.sleep(5)print('点击搜索框')driver.find_element_by_id('com.tencent.mm:id/f98').click()time.sleep(5)print('输入微信号')driver.find_element_by_id('com.tencent.mm:id/bhn').send_keys('wxhghgxj')time.sleep(5)print('点击搜索')driver.find_element_by_id('com.tencent.mm:id/f94').click()time.sleep(5)print('点击名片')driver.find_element_by_id('com.tencent.mm:id/az_').click()time.sleep(5)print('点击添加到通讯录')driver.find_element_by_id('com.tencent.mm:id/g6f').click()time.sleep(5)print('点击发送')driver.find_element_by_id('com.tencent.mm:id/ch').click()
except Exception as e:print(e)

6.3. 元素定位

从代码中不难发现,问题的关键是元素定位,我们一般通过元素id来定位,比如我们在微信中找一下

1、点击搜索

2、JSON Representation中输入:

{"platformName": "Android","deviceName": "emulator-5554","platformVersion": "6.0.1","appPackage": "com.tencent.mm","appActivity": ".ui.LauncherUI","noReset": "True","unicodeKeyboard": "True","resetKeyboard": "True"
}

3、点击启动会话

4、鼠标移动到,可以看到元素的idcom.tencent.mm:id/ef9


5、然后再通过以下代码即可实现元素的定位和点击

driver.find_element_by_id('com.tencent.mm:id/ef9').click()

7. 引用参考

https://www.cnblogs.com/lexus168/p/12573025.html
https://mp.weixin.qq.com/s/cMdQKerwD-UIX5Xcnb_GIw

8. 温馨提示

本文所有安装包+代码下载地址:

天翼云盘 (力荐):点击下载
坚果云盘 (推荐):点击下载
微软云盘 (推荐):点击下载
百度网盘 (限速):点击下载 (提取码:s2fc )

【python】自动化连接和操作手机微信相关推荐

  1. python操作微信手机端下载_【python】自动化连接和操作手机微信

    1. 环境配置 JDK Android SDK Appium MuMu 1.1. JDK 1.1.1. 下载安装 去华为云镜像下载JDK,我下载的版本是:jdk-8u181-windows-x64.e ...

  2. 使用python简单连接并操作数据库

    python中连接并操作数据库 图示操作流程 一.使用的完整流程 # 1. 导入模块 from pymysql import connect# 2. 创建和数据库服务器的连接,自行设置 服务器地址,端 ...

  3. Task 03 python自动化之word操作

    1.课前准备 """学习路径均来源于DataWhale"" python 处理 Word 需要用到 python-docx 库,终端执行如下安装命令: ...

  4. task03:python自动化之word操作

    python自动化之word操作 文章目录 python自动化之word操作 一.课前准备 二.知识要点 1.预热:初步认识docx (1)新建空白word并插入文字 2. 正式:python自动化之 ...

  5. 自动化办公-3.python自动化之word操作

    一.课前准备 python 处理 Word 需要用到 python-docx 库,终端执行如下安装命令: pip3 install python-docx 备注:可能word用的少,这块并没认真,但是 ...

  6. 【python】adb+uiautomator 操作手机

    uiautomator配置 uiautomator2 是一个可以使用Python对Android设备进行UI自动化的库.其底层基于Google uiautomator,Google提供的uiautom ...

  7. python自动化库_Python操作自动化库PyAutoGUI的方法

    Python操作自动化库PyAutoGUI的方法 发布时间:2020-07-23 17:24:46 来源:亿速云 阅读:73 作者:小猪 这篇文章主要讲解了Python操作自动化库PyAutoGUI的 ...

  8. python办公自动化代码_[Python] 自动化办公 邮件操作基础知识及代码(下)

    转载请注明:陈熹 chenx6542@foxmail.com (简书号:半为花间酒) 若公众号内转载请联系公众号:早起Python 这篇文章能学到的主要内容: imbox 收取邮件 poplib 收取 ...

  9. Python自动化刷投票脚本开发,微信投票再也不需要发红包了

    前言 现在部分比赛为了推广赞助商或者比赛本身,需要参赛队伍进行网上拉票,甚至票数还会占一定比例的成绩.因此,刷票也就应运而生了.此次我们团队参加一个比赛,就需要网上投票决出前几名,作为一位技术人员,当 ...

最新文章

  1. 计算机视觉方向简介 | 半全局匹配SGM
  2. Spring中jdbcTemplate的用法实例
  3. 一个不定宽高的元素如何在父元素中垂直水平居中
  4. iOS多线程:『NSOperation、NSOperationQueue』详尽总结
  5. POJ 3686 The Windy's
  6. 生成学习、高斯判别、朴素贝叶斯—斯坦福ML公开课笔记5
  7. [置顶] 总结工作中常用到的linux命令
  8. 【转】ABP源码分析四十四:ZERO的配置
  9. linux写文件操作同步,linux 可执行文件与写操作的同步问题(文件读写操作产生的锁机制)...
  10. 大学生利用信息差赚钱的方式
  11. OpenJudge 1.6.4
  12. 轻量化安装 TKEStack:让已有 K8s 集群拥有企业级容器云平台的能力
  13. 计算机的硬盘配额如何更改,磁盘配额是什么怎么设置
  14. 放大电路静态工作点的稳定
  15. 抽象代数 群论(第1章)2 子群,配集分解,循环群
  16. php detailview,PHP开发框架Yii Framework教程(31) Zii组件-DetailView示例
  17. python斐波那契螺旋线怎么画向日葵心_斐波那契螺旋线的图形作法
  18. C#丨DataGridView控件获取选中行的某一列的值
  19. Ubuntu18.04有线网络连接不上
  20. 乐华娱乐再度冲刺港股:业务高度依赖王一博 ​9个月经营利润降41%

热门文章

  1. 聊天系统 数据库功能表结构如何设计?
  2. 全世界的大脑联合起来!全球网脑论坛BBS介绍,欢迎加入
  3. 电池供电设备极性校正电路
  4. 一款可以制作像素破损撕拉花屏效果的AE脚本:Datamosh
  5. 企业如何过一个“难忘”的生日?蒙牛给出了答案
  6. java阿基米德螺线
  7. vue 全局动态修改title、keywords、description;vue常用挂载的方法,自定义指令;
  8. 实体类转换成Xml格式实例
  9. 如何解决Authentication failure问题
  10. Cocos 知乎官方账号已开通!