1. 环境配置

JDK

Android SDK

Appium

MuMu

1.1. 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

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

1.3.1. 下载解压

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

1.3.2. 编辑配置

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

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

1.3.3. 模块安装

pip install appium-python-client

1.4. MuMu

从官网下载并安装网易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.LauncherUI是appActivity

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. 具体流程

点击⊕号

点击添加朋友

点击搜索框

输入微信号

点击搜索

点击名片

点击添加到通讯录

点击发送

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、鼠标移动到⊕,可以看到元素的id是com.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操作微信手机端下载_【python】自动化连接和操作手机微信相关推荐

  1. python操作微信手机端下载_用PYTHON玩微信(非常详细)

    词云那里可以换成小黄人图片 -------------------------------------------------------------------------------------- ...

  2. python脚本实例手机端-终于晓得python入门脚本实例

    Python面向对象跟Java的面向对象大同小异,这篇我们简单介绍一下Python面向对象.以下是小编为你整理的python入门脚本实例 类(class)是通俗的说就是事物的属性和行为的抽象.下面我们 ...

  3. php手机网站底部导航代码,jQuery微信手机端底部弹出导航菜单列表代码

    jQuery微信手机端底部弹出导航菜单列表代码 jQuery微信手机端底部弹出导航菜单列表代码是一款网页底部点击按钮弹出浮动的图标菜单列表的手机特效. js代码 function showList() ...

  4. cad教程,手机端下载cad版本转换器

    今天想和大家分享一下,我们在没有电脑在身边的时候,需要随身操作转换CAD图纸,手机端下载cad版本转换器该如何操作呢?cad教程分享给大家. 1.我们先启动手机进入应用市场APP,在搜索栏里搜索&qu ...

  5. OBS如何配置推流到RTMP流媒体服务直播视频文件直播桌面操作让微信手机端电脑浏览器无插件直播观看

    OBS如何配置推流到RTMP流媒体服务直播视频文件直播桌面操作让微信手机端电脑浏览器无插件直播观看 1.下载安装OBS 1.1.官网下载 1.2.应用搜索下载 2.下载安装RTMP流媒体服务 3.获得 ...

  6. Bilibili手机端下载的Download文件批量转换为MP4软件【Bilibili_DownVideoToMp4】原创发布

    Bilibili手机端下载的Download文件批量转换为MP4软件[Bilibili_DownVideoToMp4]原创发布 起因 Bilibili手机端的视频下载下来只能在手机上看,手机屏幕太小看 ...

  7. 企业微信手机端可以退出吗?会影响电脑端企业微信吗?

    现在很多企业选择企业微信作为移动办公软件,企业微信打破了传统办公软件的地域限制,可以在手机端和电脑端进行登录,随时可以进行工作事宜. 前言 现在很多企业选择企业微信作为移动办公软件,企业微信打破了传统 ...

  8. 仿微信手机端支付页面代码可改余额

    介绍: 高仿的微信手机端支付页面代码可改余额,就自己看看装个样子,别去骗人啊,哈哈哈哈,穷人只能这样玩玩 网盘下载地址: http://kekewl.org/uGEBzURdmBF0 图片:

  9. php 九宫格验证码,PHP+Ajax微信手机端九宫格抽奖实例

    PHP+Ajax结合lottery.js制作的一款微信手机端九宫格抽奖实例,抽奖完成后有收货地址添加表单出现.支持可以设置中奖概率等. 奖品列表 - Ajax抽奖 $.post("ajax. ...

最新文章

  1. 交换网络安全防范系列五之802.1x-基于端口的网络访问控制技术
  2. centos7 nat模式配置静态ip_Manjaro 配置静态网络IP
  3. 前端跨域问题解决方案汇总
  4. vue-cli 打包
  5. asp.net core 实现支持多语言
  6. python 日志不会按照日期分割_python 按照日期切分大日志文件(重点)和按照指定大小切分日志文件...
  7. 大厂的产品经理是怎样进行产品迭代的
  8. React-Router 4 两个常用路由变量
  9. js做四则运算时,精度丢失问题及解决方法
  10. 系统批量运维管理器Fabric详解
  11. lamda表达式对list各种处理
  12. view 判断显示 微信_微信小程序WXML页面常用语法(讲解+示例)
  13. 奇新CMS教程(一)——在奇新CMS中添加五连幅焦点图片
  14. mac 学习 java_Mac 新手从零学习JAVA 环境配置篇
  15. 红帽子linux 9.0下载,红帽子 RedHat linux 9.0 简体中文正式版 下载地址
  16. C# NPOI 导出Excel 小数位数控制
  17. html的nofollow标签,详解:什么是Nofollow标签!
  18. 车载网络: CAN (Control Area Network) 控制器局域网络
  19. word目录中页码没有向右对齐的解决方法
  20. 关于《那些年啊,那些事——一个程序员的奋斗史》的更新

热门文章

  1. 这些电脑软件值得收藏哦
  2. 对AttributeSet和defStyle的理解
  3. ::= 语法是什么意思BNF
  4. mediapipe学习-安装编译windows(1)
  5. DELPHI 多线程同步几种方法
  6. delphi多线程加锁
  7. Hive 正则提取英文名称和中文名称
  8. 30道数据挖掘笔试题,这都不懂就早点跑路吧
  9. 美女图片站眼球创业?2023版H5自适应美女写真图片站全站整站源码
  10. [日语二级词汇]动词(6)