春节来到,红包们大概率在微信各大群中肆虐,大家是否都一样不抢到红包们心里就感觉错过了一个亿,可总会被这事那事耽误而遗憾错过,下面用 Python 写一个自动抢红包代码

有兴趣的同学可以关注小编,申请QQ群:721195303领取这款软件。

启动入口

from appium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from appium.webdriver.common.touch_action import TouchAction
from selenium.webdriver.support import expected_conditions as ECdesired_capabilities = {'platformName': 'Android', # 操作系统'deviceName': '2a254a02', # 设备 ID'platformVersion': '10.0.10', # 设备版本号,在手机设置中查看'appPackage': 'com.tencent.mm', # app 包名'appActivity': 'com.tencent.mm.ui.LauncherUI', # app 启动时主 Activity'noReset': True # 是否保留 session 信息 避免重新登录
}driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_capabilities)
# 设置等待超时时间
wait = WebDriverWait(driver, 60)

点击进入聊天窗口

微信在一般情况下最新的聊天记录将被放在第一个,所以只需要打开第一个聊天窗口检查有没有红包就可以了,用 id 为 com.tencent.mm:id/e3x 可以找到所有的聊天信息,我们取第一个聊天群的索引

# 进入第一个聊天框
red_packet_group = driver.find_elements_by_id('com.tencent.mm:id/e3x')[0]
red_packet_group.click()

找到红包

进入聊天群后,红包图片检查是否存在红包,它的 id 为 com.tencent.mm:id/r2

 # 检查红包
reds = driver.find_elements_by_id('com.tencent.mm:id/r2')
if len(reds) == 0:driver.keyevent(4)

抢红包

点击红包后会出现以下 3 种情况

  1. 红包已经被自己领取了

  2. 红包手慢了没抢到

  3. 红包未领取

前两种情况红包已经失效了,最后一种才是可以打开的红包

红包已经失效了

在上面代码中都是用 id 检查元素是否存在,这里使用查找文字已存入零钱手慢了判断红包是否已经失效

# 判断元素是否存在
def is_element_exist_by_xpath(driver, text):try:driver.find_element_by_xpath(text)except Exception as e:return Falseelse:return True# 领取了
is_open = is_element_exist_by_xpath(driver, '//android.widget.TextView[contains(@text, "已存入零钱")]')
# 没抢到
is_grabbed = is_element_exist_by_xpath(driver, '//android.widget.TextView[contains(@text, "手慢了")]')if is_open or is_grabbed:driver.keyevent(4)

打开红包

打开红包比较简单,只需要找到  字的 id

wait.until(EC.element_to_be_clickable((By.ID, "com.tencent.mm:id/den"))).click()
wait.until(EC.element_to_be_clickable((By.ID, "com.tencent.mm:id/dm"))).click()

删除红包

最后我们将红包删除,防止红包被重复打开。当长按红包时,微信红包会出现删除按钮

TouchAction(driver).long_press(red).perform()
wait.until(EC.element_to_be_clickable((By.ID, "com.tencent.mm:id/gam"))).click()
wait.until(EC.element_to_be_clickable((By.ID, "com.tencent.mm:id/doz"))).click()

在这里还是要推荐下我自己建的Python学习群:721195303,群里都是学Python的,如果你想学或者正在学习Python ,欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2021最新的Python进阶资料和零基础教学,欢迎进阶中和对Python感兴趣的小伙伴加入!

如何优雅的抢红包 老司机给你传授秘技相关推荐

  1. win7关闭开机启动项_老司机给你传授 win7系统设置开机不启动360安全卫士只启动软件小助手的图文教程 -win7系统使用教程...

    win7旗舰版是用户量最大的一款操作系统:有不少人在使用中都遇见了win7系统设置开机不启动360安全卫士只启动软件小助手的问题,太多的用户是不想看到win7系统设置开机不启动360安全卫士只启动软件 ...

  2. QIIME 2用户文档. 3老司机上路指南(2019.7)

    前情提要 Nature Biotechnology:QIIME 2可重复.交互和扩展的微生物组数据分析平台 1简介和安装Introduction&Install 2插件工作流程概述Workfl ...

  3. QIIME 2用户文档. 3老司机上路指南(2018.11)

    文章目录 前情提要 老司机上路指南 为什么要改用QIIME 2? 老司机上路前的几点建议 数据处理步骤 数据导入 样本拆分 双端合并 去除非生物序列 相似序列分组 去噪 OTU聚类 物种分类 分析特征 ...

  4. 微生物组入门必读+宏基因组实操课程=新老司机赶快上车

    声明:本文转载自宏基因组公众号,原作者朱微金,己获作者授权. 写在前面 作为纯wet遗传学博士,转行微生物组领域已经有两年.目睹微生物组文章中分析所占比重之大,让我痛下决心苦学dry技能.目前感觉对宏 ...

  5. QIIME 2教程. 03老司机上路指南Experience(2020.11)

    文章目录 老司机上路指南 本节视频视频教程 为什么要改用QIIME 2? 老司机上路前的几点建议 数据处理步骤 数据导入 样本拆分 双端合并 去除非生物序列 相似序列分组 去噪 OTU聚类 物种分类 ...

  6. chrome postman插件_收集了一些Chrome插件神器,助你快速成为老司机

    刚开始开发项目的时候,我一直都在用火狐,因为它有一个fireBug插件,特别好用(目前已不支持),也不知道什么时候,就一直用起来Chrome浏览器了,可能是因为它有强大的插件作为后盾吧.开发了这么多年 ...

  7. 老司机 iOS 周报 #67 | 2019-05-13

    老司机 iOS 周报,只为你呈现有价值的信息. 你也可以为这个项目出一份力,如果发现有价值的信息.文章.工具等可以到 Issues 里提给我们,我们会尽快处理.记得写上推荐的理由哦.有建议和意见也欢迎 ...

  8. 老司机 iOS 周报 #37 | 2018-09-24

    老司机 iOS 周报,只为你呈现有价值的信息. 你也可以为这个项目出一份力,如果发现有价值的信息.文章.工具等可以到 Issues 里提给我们,我们会尽快处理.记得写上推荐的理由哦.有建议和意见也欢迎 ...

  9. QIIME2教程. 03老司机上路指南Experience(2020.11)

    老司机上路指南 QIIME 2 for Experienced Microbiome Researchers https://docs.qiime2.org/2020.11/tutorials/qii ...

最新文章

  1. Java基础看这一篇就够了
  2. Unity 代码集锦之图片处理
  3. 民生银行 一码付 php,PHP开心码支付免签约第四方支付平台源码修复版
  4. Git忽略文件或文件夹
  5. 组态王和modbus协议
  6. Extreme以5500万美元收购Brocade数据中心网络资产
  7. springboot整合shiro之实现记住我
  8. 锐捷客户端了解网络架构
  9. 股票---- 资金在线-个股资金流向与大单分析系统
  10. Matlab无法打开
  11. 80端口为什么要备案_Nginx只允许域名访问网站,禁止使用IP 访问80,443端口
  12. 如何安装微信解决小黑块问题(一定可以使用)
  13. linux桌面分辨率太高,将Ubuntu调整到高DPI分辨率屏幕
  14. word里面怎么在框里打勾
  15. 李德毅院士:迭代的智能——从薛定谔、图灵和维纳谈开去
  16. Tomcat Connector的BIO与NIO模式的比较及区别
  17. 8.ansible高级进阶-role详解
  18. 我的天!Win10可以从应用商店安装Ubuntu了
  19. Dr.COM宽带认证客户端网络环境使用路由器上网
  20. 电脑假死卡的动不了_电脑卡死了动不了怎样恢复

热门文章

  1. 来开开眼界,看看世界上富人扎堆的香港别墅区
  2. python下拉框二级联动_怎么在Django 添加省市二级联动下拉列表?
  3. SQL Server Parallel Data Warehouse (PDW) 介绍
  4. 沭阳的计算机学校好吗,沭阳初中学校排名
  5. JAVA源代码-java.util.concurrent 包--CopyOnWriteArrayList
  6. 西工大计算机学院读博,西北工业大学考博经验分享
  7. pageadmin CMS网站建设:母版页的制作及语法说明
  8. java日记_Java实现超级实用的日记本
  9. [机缘参悟-68]:深度思考-人的心理系统与软件系统模型与性能指标比较(可用性、可靠性、可维护性、鲁棒性、适应性、反脆弱性、成熟性)--- 人工智能启示
  10. 项目成本概预算的衡量与确定