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

启动入口

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学习群:692867294,群里都是学Python的,如果你想学或者正在学习Python ,欢迎你加入,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2021最新的Python进阶资料和零基础教学,欢迎进阶中和对Python感兴趣的小伙伴加入!

抢红包老司机给你传授秘技,python软件秒抢微信红包相关推荐

  1. 如何优雅的抢红包 老司机给你传授秘技

    春节来到,红包们大概率在微信各大群中肆虐,大家是否都一样不抢到红包们心里就感觉错过了一个亿,可总会被这事那事耽误而遗憾错过,下面用 Python 写一个自动抢红包代码 有兴趣的同学可以关注小编,申请Q ...

  2. 用 Python 来全自动抢微信红包

    最近在做手机app自动化测试,想用python写个自动抢微信红包的程序,先在网上查了一下,发现抢红包教程要么是用itchat模块做到红包提醒功能,要么root手机后用Xposed框架,这两种方式都不是 ...

  3. python实现自动化抢微信红包功能_【Python】用Python实现微信自动化抢红包,再也不用担心抢不到红包了...

    1. 概述 刚刚收到了两个消息,一个好消息,一个坏消息. 先说好消息,好消息就是微信群里有人要发红包,开心~ 不过转念一想,前几次的红包一个都没抢到,这次???不由自主的叹了一口气 - 过了一会,内心 ...

  4. python自动抢_Python+Appium实现自动抢微信红包

    前言 过年的时候总是少不了红包,不知从何时开始微信红包横空出世,对于网速和手速慢的人只能在一旁观望,做为python的学习者就是要运用编程解决生活和工作上的事情. 于是我用python解决我们的手速问 ...

  5. 老司机带你快速实现Python下载与安装

    目录 一.新手下载与安装Python的步骤: 二.老司机下载与安装Python的步骤: 先来看一下新手是怎么下载安装的: 一.新手下载与安装Python的步骤: 1.打开Python官网:https: ...

  6. 我用Python自动抢微信红包!

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资 ...

  7. 薅羊毛 | Python 带你抢视频红包,不放过一个红包!

    阅读文本大概需要 15 分钟. 1 目 标 场 景 如今短视频横行的时代,以某短视频为首的,背后依靠着强大的资金后盾,疯狂地对平台用户进行红包轰炸. 与传统的红包不一样,视频红包包含位置的不确定性.大 ...

  8. 老司机带你学爬虫——Python爬虫技术分享

    什么是"爬虫"? 简单来说,写一个从web上获取需要数据并按规定格式存储的程序就叫爬虫: 爬虫理论上步骤很简单,第一步获取html源码,第二步分析html并拿到数据.但实际操作,老 ...

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

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

  10. python自动抢微信红包源码_用Python实现微信自动化抢红包,再也不用担心抢不到红包了...

    1. 概述 刚刚收到了两个消息,一个好消息,一个坏消息. 先说好消息,好消息就是微信群里有人要发红包,开心~ 不过转念一想,前几次的红包一个都没抢到,这次???不由自主的叹了一口气 ... 过了一会, ...

最新文章

  1. UVA 10954 - Add All
  2. 独占设备的分配和回收模拟_系统设计硬核知识(4)——操作系统的设备管理...
  3. exchange 2010 集线器(hub)外发邮件的配置
  4. [计算机组成原理] Booth算法 —— 补码一位乘法
  5. 【暴力】Codeforces Round #398 (Div. 2) A. Snacktower
  6. centos 6.5 安装redis
  7. 【51Nod - 1215 】数组的宽度 (单调栈 或 分治 或 单调队列,算贡献,需去重)
  8. LeetCode 982. 按位与为零的三元组(位运算+计数)
  9. Gompertz模型绘图 matlab,Logistic模型matlab求解
  10. MYSQL启动后报:ERROR! The server quit without updating PID file错误的问题解决
  11. 不登陆QQ也能使用QQ截图工具
  12. [paper]DeepFool: a simple and accurate method to fool deep neural networks
  13. 守护进程的单实例实现_非宁静无以致远_百度空间
  14. 物联网应用平台开发——项目总结报告
  15. 《统计学习方法》 第十七章 潜在语义分析
  16. 计算机应用格式工厂部分教案,格式工厂
  17. 汉字简体与繁体互相转换
  18. 家电行业分析-格力电器之财报解读
  19. 如何将iPhone照片从iCloud下载到Mac
  20. sqoop导入hive_李孟_新浪博客

热门文章

  1. Nutch简介(转3)
  2. 谷歌浏览器自带的翻译插件为什么不能用?
  3. 在线图片托管服务imgur
  4. 【基于SpringBoot的企业人事管理系统】
  5. 自制一个简单的操作系统
  6. 奔图打印linux驱动下载,奔图P3060DW打印机驱动下载_奔图P3060DW打印机驱动官方下载-太平洋下载中心...
  7. C#中splitContainer用法
  8. directshow方法关键帧java,如何实现DirectShow source filter
  9. MFC绘制bmp图片背景
  10. BMP图片的旋转以及BMP转YUV(4:2:0)