【python】自動化連接和操作手機微信



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 )


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM