电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Python+Appium實現自動搶微信紅包

瀏覽:6日期:2022-06-18 17:19:57
目錄環境準備實現思路code環境準備 appium環境 安卓手機 usb數據線 python環境實現思路

我們收到紅包和消息都是自動置頂到第一個,于是我們打開第一個判斷是否有紅包,沒有則隱藏此窗口。如果有則判斷紅包是否可以領取,如果有則領取紅包,否則刪除此紅包(不然會影響后面的判斷)然后再進行循環運行和判斷。

Python+Appium實現自動搶微信紅包

code

首先看一下配置信息,因為我使用得是真機小米9安卓10的系統,代碼實現如下具體的信息填寫請根據自己的真實情況修改:

desired_caps = { 'platformName': 'Android', # 系統 'platformVersion': '10.0', # 系統版本號 'deviceName': 'b68548ed', # 設備名 'appPackage': 'com.tencent.mm', # 包名 'appActivity': '.ui.LauncherUI', # app 啟動時主 Activity ’unicodeKeyboard’: True, # 使用自帶輸入法 ’noReset’: True # 保留 session 信息,可以避免重新登錄}

因為點擊紅包后需要判斷點擊后的紅包是否被領取,即是否有開字,如圖所示:

Python+Appium實現自動搶微信紅包

所以我們定義一個判斷元素是否存在的方法,代碼實現如下:

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/ahs'))) TouchAction(driver).long_press(r8).perform() time.sleep(1) # 點擊長按后顯示的刪除 wait.until(EC.element_to_be_clickable((By.ID, 'com.tencent.mm:id/dt5'))).click() # 點擊彈出框的刪除選項 wait.until(EC.element_to_be_clickable((By.ID, 'com.tencent.mm:id/ffp'))).click()

Python+Appium實現自動搶微信紅包

同時有可能第一個是公眾號推送的消息,這樣會導致無法判斷,所以我們判斷只要進去的里面沒有紅包就把它隱藏掉,然后等新的紅包發生過來。

# 刪除第一個聊天框def del_red_public(wait, driver): # 長按第一個聊天框 r8 = wait.until(EC.element_to_be_clickable((By.ID, 'com.tencent.mm:id/fzg'))) TouchAction(driver).long_press(r8).perform() time.sleep(1) # 點擊長按后顯示的刪除 wait.until(EC.element_to_be_clickable((By.XPATH, '//android.widget.TextView[@text=’不顯示該聊天’]'))).click() # 點擊彈出框的刪除選項 wait.until(EC.element_to_be_clickable((By.ID, 'com.tencent.mm:id/ffp'))).click()

完整代碼如下:

from appium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom appium.webdriver.common.touch_action import TouchActionfrom selenium.webdriver.support import expected_conditions as ECimport timedesired_caps = { 'platformName': 'Android', # 系統 'platformVersion': '10.0', # 系統版本號 'deviceName': 'b68548ed', # 設備名 '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/ahs'))) TouchAction(driver).long_press(r8).perform() time.sleep(1) # 點擊長按后顯示的刪除 wait.until(EC.element_to_be_clickable((By.ID, 'com.tencent.mm:id/dt5'))).click() # 點擊彈出框的刪除選項 wait.until(EC.element_to_be_clickable((By.ID, 'com.tencent.mm:id/ffp'))).click()# 刪除第一個聊天框def del_red_public(wait, driver): # 長按第一個聊天框 r8 = wait.until(EC.element_to_be_clickable((By.ID, 'com.tencent.mm:id/fzg'))) TouchAction(driver).long_press(r8).perform() time.sleep(1) # 點擊長按后顯示的刪除 wait.until(EC.element_to_be_clickable((By.XPATH, '//android.widget.TextView[@text=’不顯示該聊天’]'))).click() # 點擊彈出框的刪除選項 wait.until(EC.element_to_be_clickable((By.ID, 'com.tencent.mm:id/ffp'))).click()if __name__ == ’__main__’: driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) # 設置等待 wait = WebDriverWait(driver, 500) while True: # 進入第一個聊天窗口g73 = wait.until(EC.element_to_be_clickable( (By.ID, 'com.tencent.mm:id/fzg')))g73.click()print('進入了第一個聊天窗口')# 判斷聊天窗是否是公眾號is_weichat = is_element_exist(driver, 'id', 'com.tencent.mm:id/u1')if is_weichat == True:# while True: # 有紅包則點擊 wait.until(EC.element_to_be_clickable((By.ID, 'com.tencent.mm:id/u1'))).click() print('點擊了紅包') # 判斷紅包是否被領取 is_open = is_element_exist(driver, 'id', 'com.tencent.mm:id/f4f') print('紅包是否被領取:', is_open) if is_open == True:# 紅包未被領取,點擊開紅包wait.until(EC.element_to_be_clickable( (By.ID, 'com.tencent.mm:id/f4f'))).click()print(’已經領取紅包’)# 返回群聊driver.keyevent(4)# 刪除領取過的紅包記錄del_red_envelope(wait, driver)print(’···刪除已經領取的紅包,等待新的紅包’)driver.keyevent(4) else:# 返回群聊driver.keyevent(4)# 刪除領取過的紅包記錄del_red_envelope(wait, driver)print(’···刪除無法領取的紅包,等待新的紅包’)driver.keyevent(4)else: print(’沒有紅包則隱藏此聊天框’) # 返回群聊 driver.keyevent(4) # 刪除第一個公眾號窗口 del_red_public(wait, driver) print(’隱藏了第一個聊天框’)

以上就是Python+Appium實現自動搶微信紅包的詳細內容,更多關于Python 搶微信紅包的資料請關注好吧啦網其它相關文章!

標簽: 微信 Python
相關文章:
主站蜘蛛池模板: 全自动定氮仪-半自动凯氏定氮仪厂家-祎鸿仪器 | 罗茨真空机组,立式无油往复真空泵,2BV水环真空泵-力侨真空科技 | 水厂自动化|污水处理中控系统|水利信息化|智慧水务|智慧农业-山东德艾自动化科技有限公司 | 便携式XPDM露点仪-在线式防爆露点仪-增强型烟气分析仪-约克仪器 冰雕-冰雪世界-大型冰雕展制作公司-赛北冰雕官网 | 精密光学实验平台-红外粉末压片机模具-天津博君 | 变色龙PPT-国内原创PPT模板交易平台 - PPT贰零 - 西安聚讯网络科技有限公司 | 新材料分散-高速均质搅拌机-超声波分散混合-上海化烁智能设备有限公司 | 真石漆,山东真石漆,真石漆厂家,真石漆价格-山东新佳涂料有限公司 | 温州在线网| 蓄电池回收,ups电池后备电源回收,铅酸蓄电池回收,机房电源回收-广州益夫铅酸电池回收公司 | 通辽信息港 - 免费发布房产、招聘、求职、二手、商铺等信息 www.tlxxg.net | 真丝围巾|真丝丝巾|羊绒围巾|围巾品牌|浙江越缇围巾厂家定制 | 江西自考网| 山东氧化铁红,山东铁红-淄博科瑞化工有限公司 | 硅胶布|电磁炉垫片|特氟龙胶带-江苏浩天复合材料有限公司 | 广州展台特装搭建商|特装展位设计搭建|展会特装搭建|特装展台制作设计|展览特装公司 | 油罐车_加油机_加油卷盘_加油机卷盘_罐车人孔盖_各类球阀_海底阀等车用配件厂家-湖北华特专用设备有限公司 | 耐热钢-耐磨钢-山东聚金合金钢铸造有限公司 | 楼承板-开口楼承板-闭口楼承板-无锡海逵 | 播音主持培训-中影人教育播音主持学苑「官网」-中国艺考界的贵族学校 | 干培两用箱-细菌恒温培养箱-菲斯福仪器 | 即用型透析袋,透析袋夹子,药敏纸片,L型涂布棒-上海桥星贸易有限公司 | 广东教师资格网-广东教师资格证考试网 | 小型UV打印机-UV平板打印机-大型uv打印机-UV打印机源头厂家 |松普集团 | 陕西华春网络科技股份有限公司 | 扒渣机,铁水扒渣机,钢水扒渣机,铁水捞渣机,钢水捞渣机-烟台盛利达工程技术有限公司 | 至顶网| 驾驶式洗地机/扫地机_全自动洗地机_工业洗地机_荣事达工厂官网 | 细砂提取机,隔膜板框泥浆污泥压滤机,螺旋洗砂机设备,轮式洗砂机械,机制砂,圆锥颚式反击式破碎机,振动筛,滚筒筛,喂料机- 上海重睿环保设备有限公司 | 视觉检测设备_自动化检测设备_CCD视觉检测机_外观缺陷检测-瑞智光电 | 石英砂矿石色选机_履带辣椒色选机_X光异物检测机-合肥幼狮光电科技 | 有福网(yofus.com)洗照片冲印,毕业聚会纪念册相册制作个性DIY平台 | 书法培训-高考书法艺考培训班-山东艺霖书法培训凭实力挺进央美 | 重庆LED显示屏_显示屏安装公司_重庆LED显示屏批发-彩光科技公司 重庆钣金加工厂家首页-专业定做监控电视墙_操作台 | 合肥弱电工程_安徽安防工程_智能化工程公司-合肥雷润 | 博博会2021_中国博物馆及相关产品与技术博览会【博博会】 | ISO9001认证咨询_iso9001企业认证代理机构_14001|18001|16949|50430认证-艾世欧认证网 | 冰晶石|碱性嫩黄闪蒸干燥机-有机垃圾烘干设备-草酸钙盘式干燥机-常州市宝康干燥 | 耐腐蚀泵,耐腐蚀真空泵,玻璃钢真空泵-淄博华舜耐腐蚀真空泵有限公司 | 东莞螺丝|东莞螺丝厂|东莞不锈钢螺丝|东莞组合螺丝|东莞精密螺丝厂家-东莞利浩五金专业紧固件厂家 | 定量包装秤,吨袋包装称,伸缩溜管,全自动包装秤,码垛机器人,无锡市邦尧机械工程有限公司 |