话说又要过年了,现在过年可没有小时候的味道了,小时候只顾着放鞭炮,现在只顾着各个群里蹲红包。
但是手动抢肯定没戏,毕竟手can谁也没办法!那就只能试试能不能通过编程的方式实现自动化抢红包了!
跟小编一样财迷的铁汁们 可以往下滑了 代码文末可取
现在捋一下思路,微信群发红包的基本情况是:每一次发红包都会与上一次有一些时间间隔,实现自动化抢红包的基本思路如下:
本文主要环境如下
接下来我们开始手动敲代码,下面一起来看一下具体实现。
首先看一下配置信息,代码实现如下:
desired_caps = {
"platformName": "Android", # 系统
"platformVersion": "8.0.0", # 系统版本号
"deviceName": "m5s", # 设备名
"appPackage": "com.tencent.mm", # 包名
"appActivity": ".ui.LauncherUI", # app 启动时主 Activity
'unicodeKeyboard': True, # 使用自带输入法
'noReset': True # 保留 session 信息,可以避免重新登录
}
因为点击红包后需要判断点击后的红包是否被领取,即是否有开字,如图所示:
所以我们定义一个判断元素是否存在的方法,代码实现如下:
# 判断元素是否存在
def is_element_exist(driver, by, value):
try:
driver.find_element(by=by, value=value)
except Exception as e:
return False
else:
return True
因为红包无论是被自己领取还是被他人领取,之后都要删除领取后的红包记录,所以我们再来定义一个删除已领取红包的方法,代码实现如下:
# 删除领取后的红包记录
def del_red_envelope(wait, driver):
# 长按领取过的红包
r8 = wait.until(EC.element_to_be_clickable((By.ID, "com.tencent.mm:id/r8")))
TouchAction(driver).long_press(r8).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()
长按领取后红包的效果图如下:
点击长按后显示的删除项之后的效果图如下:
我们接着来看一下进入红包群后的主程序实现,代码如下:
while True:
# 有红包则点击
# 现在不是都放假了,所以给大家准备了几百本Python的PDF电子书,什么类型都有。
# 还有Python的视频教程、源码等等,直接在这个Python学习交流q裙:872937351 自取就好了。
wait.until(EC.element_to_be_clickable((By.ID, "com.tencent.mm:id/r8"))).click()
print("点击了红包")
# 判断红包是否被领取
is_open = is_element_exist(driver, "id", "com.tencent.mm:id/den");
print("红包是否被领取:", is_open)
if is_open == True:
# 红包未被领取,打开红包
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()
# 删除领取过的红包记录
del_red_envelope(wait, driver)
else:
# 返回群聊
driver.keyevent(4)
# 删除领取过的红包记录
del_red_envelope(wait, driver)
Python学习路线汇总
温馨提示:篇幅有限,已打包文件夹获取方式在:点击这里【 Python全套资料
】 即可获取。
Python必备开发工具
温馨提示:篇幅有限,已打包文件夹获取方式在:点击这里【 Python全套资料
】 即可获取。
Python学习视频600合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
100道Python练习题检查学习结果。
面试刷题
温馨提示:篇幅有限,已打包文件夹获取方式在:点击这里【 Python全套资料
】 即可获取。