【python】自动化连接和操作手机微信 1. 环境配置 2. 连接模拟器 3. 启动服务器 4. 启动微信 5. 连接测试 6. 微信编程 7. 引用参考 8. 温馨提示


  • JDK
  • Android SDK
  • Appium
  • MuMu

1.1. JDK

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

1.1.1. 下载安装

去华为云镜像下载JDK,我下载的版本是:jdk-8u181-windows-x64.exe
【python】自动化连接和操作手机微信
1. 环境配置
2. 连接模拟器
3. 启动服务器
4. 启动微信
5. 连接测试
6. 微信编程
7. 引用参考
8. 温馨提示

1.1.2. 环境变量

1、环境变量->系统变量->新建:变量名JAVA_HOME,变量值D:Program FilesJavajdk1.8.0_181
【python】自动化连接和操作手机微信
1. 环境配置
2. 连接模拟器
3. 启动服务器
4. 启动微信
5. 连接测试
6. 微信编程
7. 引用参考
8. 温馨提示
2、环境变量->系统变量->Path->编辑->编辑文本:在变量值末尾添加%JAVA_HOME%in;%JAVA_HOME%jrein;
【python】自动化连接和操作手机微信
1. 环境配置
2. 连接模拟器
3. 启动服务器
4. 启动微信
5. 连接测试
6. 微信编程
7. 引用参考
8. 温馨提示

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目录下。
【python】自动化连接和操作手机微信
1. 环境配置
2. 连接模拟器
3. 启动服务器
4. 启动微信
5. 连接测试
6. 微信编程
7. 引用参考
8. 温馨提示

2、下载SDK Platform-Tools,我下载的版本是platform-tools_r22-windows.zip,把解压出来的platform-tools文件夹放在D:Program Filesandroid-sdk-windows目录下。
【python】自动化连接和操作手机微信
1. 环境配置
2. 连接模拟器
3. 启动服务器
4. 启动微信
5. 连接测试
6. 微信编程
7. 引用参考
8. 温馨提示

3、下载Build-Tools,我下载的版本是21.1.2.rar,解压后将21.1.2文件夹放到D:Program Filesandroid-sdk-windowsuild-tools目录下。
【python】自动化连接和操作手机微信
1. 环境配置
2. 连接模拟器
3. 启动服务器
4. 启动微信
5. 连接测试
6. 微信编程
7. 引用参考
8. 温馨提示

1.2.2. 环境变量

1、环境变量->系统变量->新建:变量名ANDROID_HOME,变量值D:Program Filesandroid-sdk-windows
【python】自动化连接和操作手机微信
1. 环境配置
2. 连接模拟器
3. 启动服务器
4. 启动微信
5. 连接测试
6. 微信编程
7. 引用参考
8. 温馨提示
2、环境变量->系统变量->Path->编辑->编辑文本:在变量值末尾添加%ANDROID_HOME% ools;%ANDROID_HOME%uild-tools21.1.2;%ANDROID_HOME%platform-tools;
【python】自动化连接和操作手机微信
1. 环境配置
2. 连接模拟器
3. 启动服务器
4. 启动微信
5. 连接测试
6. 微信编程
7. 引用参考
8. 温馨提示

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运行软件,点击编辑配置
【python】自动化连接和操作手机微信
1. 环境配置
2. 连接模拟器
3. 启动服务器
4. 启动微信
5. 连接测试
6. 微信编程
7. 引用参考
8. 温馨提示
2、它这里已经把我们之前配置的JAVA_HOMEANDROID_HOME自动补上了,我们就不用填了,如果没有,请再填一下
【python】自动化连接和操作手机微信
1. 环境配置
2. 连接模拟器
3. 启动服务器
4. 启动微信
5. 连接测试
6. 微信编程
7. 引用参考
8. 温馨提示

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:Usersghgxj>adb connect 127.0.0.1:7555
connected to 127.0.0.1:7555

3. 启动服务器

1、点击启动
【python】自动化连接和操作手机微信
1. 环境配置
2. 连接模拟器
3. 启动服务器
4. 启动微信
5. 连接测试
6. 微信编程
7. 引用参考
8. 温馨提示
2、启动成功
【python】自动化连接和操作手机微信
1. 环境配置
2. 连接模拟器
3. 启动服务器
4. 启动微信
5. 连接测试
6. 微信编程
7. 引用参考
8. 温馨提示
3、要一直保持Appium服务器运行,不能将它的窗口关闭

4. 启动微信

获取微信的appPackage和appActivity

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

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

2、找到cmp=com.tencent.mm/.ui.LauncherUI
【python】自动化连接和操作手机微信
1. 环境配置
2. 连接模拟器
3. 启动服务器
4. 启动微信
5. 连接测试
6. 微信编程
7. 引用参考
8. 温馨提示
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、点击搜索
【python】自动化连接和操作手机微信
1. 环境配置
2. 连接模拟器
3. 启动服务器
4. 启动微信
5. 连接测试
6. 微信编程
7. 引用参考
8. 温馨提示
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、点击启动会话
【python】自动化连接和操作手机微信
1. 环境配置
2. 连接模拟器
3. 启动服务器
4. 启动微信
5. 连接测试
6. 微信编程
7. 引用参考
8. 温馨提示
4、鼠标移动到,可以看到元素的idcom.tencent.mm:id/ef9

【python】自动化连接和操作手机微信
1. 环境配置
2. 连接模拟器
3. 启动服务器
4. 启动微信
5. 连接测试
6. 微信编程
7. 引用参考
8. 温馨提示
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 )