一、环境准备

1、jdk1.8.0

2、android-sdk_r24.4.1-windows.zip

3、Python3.6

4、Appium-Server-GUI-windows-1.22.0.zip

5、Appium-Python-Client

6、Appium-Inspector-windows-2021.12.2.zip

简单说明:jdk为java运行环境,SDK为Android运行环境,Python3.6+Appium-Python-Client库为Appium客户端,Appium-Server为Appium服务器,Appium-Inspector用于定位页面元素。

二、Appium框架原理、加载过程

Appium基本原理为

 Appium加载过程为

三、实战

1、在appium安装目录双击Appium Server GUI.exe先启动服务器,点击编辑配置,填入SDK和jdk根目录,保存后启动服务器。

Appium Server启动成功

2、执行代码,启动微信APP

执行代码前需要安装Appium-Python-Client库,用于连接Appium服务器。

platformName是设备系统类型,deviceName为设备名称,appPackage为应用包名,appActivity为应用启动入口,noReset为不在会话前重置应用状态,默认为false  切记要保证为True,不然APP数据会被清掉,所有聊天记录都清空,血的教训。。。

deviceName、appPackage、appActivity这三个东西可以在如下连接方法找到https://blog.csdn.net/l15767016983/article/details/122943734

如果deviceName想为IP:port,则需要在如下连接方法找到deviceName

https://blog.csdn.net/l15767016983/article/details/122939195

from appium import webdriverif __name__ == '__main__':desired_caps = {"platformName": "Android","deviceName": "81c94a60","appPackage": "com.tencent.mm","appActivity": "com.tencent.mm.ui.LauncherUI","noReset": True}driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

运行代码前需要确保Appium服务器正常运行,不然会连接不了服务器。

3、Inspector定位元素

安装完Inspector后在安装目录双击Appium Inspector.exe运行Inspector,填写请求JSON

启动会话,微信被成功启动。

Inspector有几个小工具,包括选择元素、录制代码、滑动坐标、点击坐标点、刷新等工具用于操作页面。

可以找到元素的ID、CLASS_NAME、XPATH等信息,用于操作元素。

(1)点击元素,进入和某人的聊天页面。

name="对方正在输入..."
count=1
while True:#循环等待消息print("第{0}次循环。。。".format(count))child = driver.find_elements(AppiumBy.ID, "com.tencent.mm:id/btg")for i in child:try:msg_person=i.find_element(AppiumBy.ID, "com.tencent.mm:id/hga").text#联系人昵称if name in msg_person:msg_count=i.find_element(AppiumBy.ID, "com.tencent.mm:id/kn6").text#新消息数if int(msg_count)>0:#和某人的消息数大于0则进入该聊天i.click()driver.find_element(AppiumBy.ID, "com.tencent.mm:id/fz").click()#返回上一步except Exception:passcount+=1time.sleep(5)

(2)点击输入框,输入聊天内容,发送内容。如果想自动回复各种消息可以弄一个聊天机器人,例如图灵,可以免费注册。

b4a=driver.find_element(AppiumBy.ID,"com.tencent.mm:id/b4a")#输入框
b4a.click()#需要点击一下唤起键盘,不然全面屏可能找不到发送的元素
b4a.send_keys(msg)
driver.find_element(AppiumBy.ID,"com.tencent.mm:id/b8k").click()#点击发送

(3)查看当前页面的聊天记录。

时间ID为com.tencent.mm:id/b8z,文字/小表情的ID为com.tencent.mm:id/b4b,大表情包ID为com.tencent.mm:id/b4c,发送者昵称ID为com.tencent.mm:id/b3s。

    child=driver.find_element(AppiumBy.ID, "com.tencent.mm:id/b79").find_elements(AppiumBy.XPATH, ".//*")for i in child:resource_Id=i.get_attribute("resourceId")if resource_Id:text=i.get_attribute("text")if "com.tencent.mm:id/b8z" in resource_Id:msg_time = text# 1 时间print(msg_time)elif "com.tencent.mm:id/b3s" in resource_Id:sender = i.get_attribute("contentDescription")# 2 发送者print(sender)elif "com.tencent.mm:id/b4b" in resource_Id:text_msg= text# 3 文字消息/小表情print(text_msg)elif "com.tencent.mm:id/b4c" in resource_Id:big_msg = "[表情]"# 4 大表情print(big_msg)

(4)滑动页面,加载更多聊天记录。

size = driver.get_window_size()
driver.swipe(size['width'] * 0.5, size['height'] * 0.25, size['width'] * 0.5, size['height'] * 0.65)

(5)打印整页XML资源

print(driver.page_source)#打印整页XML资源

python3.6+Appium实现手机微信自动回复相关推荐

  1. python远程聊天_python工具,微信聊天、自动回复、手机微信远程控制电脑

    功能简介 微信聊天.发送文件 微信忙碌回复 微信机器人回复 微信远程控制电脑 软件截图 python工具,微信聊天.自动回复.手机微信远程控制电脑 python工具,微信聊天.自动回复.手机微信远程控 ...

  2. java微信群自动回复_功能强大,手机微信群控系统和云控哪个好?

    互联网信息技术在发展的同时,也在不断刷新我们对新科技的认知.随着微营销发展的风生水起,手机微信群控和云控出现了,主要就是通过一台电脑控制几十上百部手机,场面十分震撼,这样的黑科技,你了解过吗? ​ 了 ...

  3. python实现微信自动回复机器人+查看别人撤回的消息(部署到云服务器)

    python实现微信自动回复机器人+查看别人撤回的消息(部署到云服务器) 声明:仅供技术交流,请勿用于非法用途,如有其它非法用途造成损失,和本博客无关 目录 python实现微信自动回复机器人+查看别 ...

  4. python 贴吧自动回复机-python实现微信自动回复机器人

    一 简单介绍 wxpy基于itchat,使用了 Web 微信的通讯协议,,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展.实现了微信登录.收发消息.搜索好友.数据统计等功能. 总而言之,可用 ...

  5. 微信自动回复和自动抢红包实现原理(三):自动抢红包

    阅读该文章前,可以先阅读我前两篇文章 微信自动回复和自动抢红包实现原理(一):AccessibilityService的介绍和配置 微信自动回复和自动抢红包实现原理(二):自动回复 经过前两篇文章的阅 ...

  6. 微信自动回复和自动抢红包实现原理(二):自动回复

    阅读这篇文章前,你需要先了解AccessibilityService,可以先阅读我上一篇文章 微信自动回复和自动抢红包实现原理(一):AccessibilityService的介绍和配置 已经了解的朋 ...

  7. 微信自动回复和自动抢红包实现原理(一):AccessibilityService的介绍和配置

    1. AccessibilityService的介绍 前几天在浏览技术博客时,看到一篇文章自动抢红包,自动安装原理之AccessibilityService.发现了Android提供了一个很有趣的辅助 ...

  8. Android微信自动回复功能

    写在前面: 最近接到老大的一个需求,要求在手机端拦截微信的通知(Notification),从而获得联系人和内容.之后将联系人和内容发送到我们的硬件产品上,展示出来之后,再将我们想回复内容传给微信,并 ...

  9. [Python微信开发] 一.itchat入门知识及微信自动回复、微信签名词云分析

    最近准备学习微信小程序开发,偶然间看到了python与微信互动的接口itchat,简单学习了下,感觉还挺有意思的,故写了篇基础文章供大家学习.itchat是一个开源的微信个人号接口,使用python调 ...

  10. Windows下Python3+nose+appium自动化测试之Android篇

    [本文出自天外归云的博客园] 简介 以下用来做自动化测试的这款app叫最爱抓娃娃,以后会改名为网易抓娃娃. 下文提到的appiumier项目里会包含用来测试的apk包以及自动化测试代码. 先说一个坑 ...

最新文章

  1. 人均6.5万!鹅厂又双叒叕给员工发股票了
  2. 用WT516P6Core离线语音模块在烧录和连接MCU时要注意避开的坑,要不挠掉头发也钻不出来!我差点套进去了,还好他们技术人员给力!把我给扯出来了!做了一个踩坑记录分享给大家
  3. mysql的几种插入语句_Mysql 几种常见的插入 Insert into,Replace Into,Insert ignore
  4. Boost:原子性的用法测试程序
  5. 第三次学JAVA再学不好就吃翔(part57)--StringBuffer和String的相互转换
  6. DeleteDC() 与 ReleaseDC() 的区别 [转]
  7. 数人云牵手红帽Ansible:七大最佳实践解锁DevOps落地姿势
  8. 【NOI2013】树的计数【树的遍历】【期望】
  9. 转: 深入浅出-网络七层模型
  10. WINCE 加入驱动DLL步骤
  11. XyPlayer 智能解析 X4 影视解析源码
  12. php并行下载文件,php – 限制并行/同时下载 – 如何知道下载是否被取消?
  13. jmeter java性能_使用JMeter进行性能测试(Java请求)
  14. Android JS 通过X5WebView相互调用详解
  15. python代码翻译器-Python实现翻译软件
  16. ubuntu安装utorrent,以闪电的速度在六维空间下载东西!
  17. aws-sdk for JavaScript 官方api文档
  18. Django 修改时区时间
  19. overleaf 图片排版
  20. 项目中使用 husky 配合 lint-staged 进行git提交前代码检查

热门文章

  1. JavaSocket编程的一个简单例子
  2. iOS 集成友盟分享图片链接为http时无法加载问题解决
  3. 那天,我无意间瞟了眼程序员的桌面……
  4. 运输问题---表上作业法
  5. aardio + .NET 快速开发独立 EXE 程序,可防 ILSpy 反编译
  6. Android实现访斗鱼视频播放
  7. 2021最新QQ闪照获取保存软件
  8. webm格式怎么转换成mp4?几步就能够完成转换
  9. SecureCRT 7.3软件下载及破解工具+教程
  10. 前端vue生成二维码,再合成海报图片