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

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python+Appium實(shí)現(xiàn)自動(dòng)搶微信紅包

瀏覽:5日期:2022-06-18 17:19:57
目錄環(huán)境準(zhǔn)備實(shí)現(xiàn)思路code環(huán)境準(zhǔn)備 appium環(huán)境 安卓手機(jī) usb數(shù)據(jù)線 python環(huán)境實(shí)現(xiàn)思路

我們收到紅包和消息都是自動(dòng)置頂?shù)降谝粋€(gè),于是我們打開第一個(gè)判斷是否有紅包,沒有則隱藏此窗口。如果有則判斷紅包是否可以領(lǐng)取,如果有則領(lǐng)取紅包,否則刪除此紅包(不然會(huì)影響后面的判斷)然后再進(jìn)行循環(huán)運(yùn)行和判斷。

Python+Appium實(shí)現(xiàn)自動(dòng)搶微信紅包

code

首先看一下配置信息,因?yàn)槲沂褂玫檬钦鏅C(jī)小米9安卓10的系統(tǒng),代碼實(shí)現(xiàn)如下具體的信息填寫請(qǐng)根據(jù)自己的真實(shí)情況修改:

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

因?yàn)辄c(diǎn)擊紅包后需要判斷點(diǎn)擊后的紅包是否被領(lǐng)取,即是否有開字,如圖所示:

Python+Appium實(shí)現(xiàn)自動(dòng)搶微信紅包

所以我們定義一個(gè)判斷元素是否存在的方法,代碼實(shí)現(xiàn)如下:

def is_element_exist(driver, by, value): try:driver.find_element(by=by, value=value) except Exception as e:return False else:return True

因?yàn)榧t包無論是被自己領(lǐng)取還是被他人領(lǐng)取,之后都要?jiǎng)h除領(lǐng)取后的紅包記錄,所以我們?cè)賮矶x一個(gè)刪除已領(lǐng)取紅包的方法,代碼實(shí)現(xiàn)如下:

def del_red_envelope(wait, driver): # 長(zhǎng)按領(lǐng)取過的紅包 r8 = wait.until(EC.element_to_be_clickable((By.ID, 'com.tencent.mm:id/ahs'))) TouchAction(driver).long_press(r8).perform() time.sleep(1) # 點(diǎn)擊長(zhǎng)按后顯示的刪除 wait.until(EC.element_to_be_clickable((By.ID, 'com.tencent.mm:id/dt5'))).click() # 點(diǎn)擊彈出框的刪除選項(xiàng) wait.until(EC.element_to_be_clickable((By.ID, 'com.tencent.mm:id/ffp'))).click()

Python+Appium實(shí)現(xiàn)自動(dòng)搶微信紅包

同時(shí)有可能第一個(gè)是公眾號(hào)推送的消息,這樣會(huì)導(dǎo)致無法判斷,所以我們判斷只要進(jìn)去的里面沒有紅包就把它隱藏掉,然后等新的紅包發(fā)生過來。

# 刪除第一個(gè)聊天框def del_red_public(wait, driver): # 長(zhǎng)按第一個(gè)聊天框 r8 = wait.until(EC.element_to_be_clickable((By.ID, 'com.tencent.mm:id/fzg'))) TouchAction(driver).long_press(r8).perform() time.sleep(1) # 點(diǎn)擊長(zhǎng)按后顯示的刪除 wait.until(EC.element_to_be_clickable((By.XPATH, '//android.widget.TextView[@text=’不顯示該聊天’]'))).click() # 點(diǎn)擊彈出框的刪除選項(xiàng) 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', # 系統(tǒng) 'platformVersion': '10.0', # 系統(tǒng)版本號(hào) 'deviceName': 'b68548ed', # 設(shè)備名 'appPackage': 'com.tencent.mm', # 包名 'appActivity': '.ui.LauncherUI', # app 啟動(dòng)時(shí)主 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# 刪除領(lǐng)取后的紅包記錄def del_red_envelope(wait, driver): # 長(zhǎng)按領(lǐng)取過的紅包 r8 = wait.until(EC.element_to_be_clickable((By.ID, 'com.tencent.mm:id/ahs'))) TouchAction(driver).long_press(r8).perform() time.sleep(1) # 點(diǎn)擊長(zhǎng)按后顯示的刪除 wait.until(EC.element_to_be_clickable((By.ID, 'com.tencent.mm:id/dt5'))).click() # 點(diǎn)擊彈出框的刪除選項(xiàng) wait.until(EC.element_to_be_clickable((By.ID, 'com.tencent.mm:id/ffp'))).click()# 刪除第一個(gè)聊天框def del_red_public(wait, driver): # 長(zhǎng)按第一個(gè)聊天框 r8 = wait.until(EC.element_to_be_clickable((By.ID, 'com.tencent.mm:id/fzg'))) TouchAction(driver).long_press(r8).perform() time.sleep(1) # 點(diǎn)擊長(zhǎng)按后顯示的刪除 wait.until(EC.element_to_be_clickable((By.XPATH, '//android.widget.TextView[@text=’不顯示該聊天’]'))).click() # 點(diǎn)擊彈出框的刪除選項(xiàng) 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) # 設(shè)置等待 wait = WebDriverWait(driver, 500) while True: # 進(jìn)入第一個(gè)聊天窗口g73 = wait.until(EC.element_to_be_clickable( (By.ID, 'com.tencent.mm:id/fzg')))g73.click()print('進(jìn)入了第一個(gè)聊天窗口')# 判斷聊天窗是否是公眾號(hào)is_weichat = is_element_exist(driver, 'id', 'com.tencent.mm:id/u1')if is_weichat == True:# while True: # 有紅包則點(diǎn)擊 wait.until(EC.element_to_be_clickable((By.ID, 'com.tencent.mm:id/u1'))).click() print('點(diǎn)擊了紅包') # 判斷紅包是否被領(lǐng)取 is_open = is_element_exist(driver, 'id', 'com.tencent.mm:id/f4f') print('紅包是否被領(lǐng)取:', is_open) if is_open == True:# 紅包未被領(lǐng)取,點(diǎn)擊開紅包wait.until(EC.element_to_be_clickable( (By.ID, 'com.tencent.mm:id/f4f'))).click()print(’已經(jīng)領(lǐng)取紅包’)# 返回群聊driver.keyevent(4)# 刪除領(lǐng)取過的紅包記錄del_red_envelope(wait, driver)print(’···刪除已經(jīng)領(lǐng)取的紅包,等待新的紅包’)driver.keyevent(4) else:# 返回群聊driver.keyevent(4)# 刪除領(lǐng)取過的紅包記錄del_red_envelope(wait, driver)print(’···刪除無法領(lǐng)取的紅包,等待新的紅包’)driver.keyevent(4)else: print(’沒有紅包則隱藏此聊天框’) # 返回群聊 driver.keyevent(4) # 刪除第一個(gè)公眾號(hào)窗口 del_red_public(wait, driver) print(’隱藏了第一個(gè)聊天框’)

以上就是Python+Appium實(shí)現(xiàn)自動(dòng)搶微信紅包的詳細(xì)內(nèi)容,更多關(guān)于Python 搶微信紅包的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: 微信 Python
相關(guān)文章:
主站蜘蛛池模板: 冻干机(冷冻干燥机)_小型|实验型|食品真空冷冻干燥机-松源 | 番茄畅听邀请码怎么输入 - Dianw8.com | 正压密封性测试仪-静态发色仪-导丝头柔软性测试仪-济南恒品机电技术有限公司 | 四川成人高考_四川成考报名网| 蓝莓施肥机,智能施肥机,自动施肥机,水肥一体化项目,水肥一体机厂家,小型施肥机,圣大节水,滴灌施工方案,山东圣大节水科技有限公司官网17864474793 | 智能型高压核相仪-自动开口闪点测试仪-QJ41A电雷管测试仪|上海妙定 | 睿婕轻钢别墅_钢结构别墅_厂家设计施工报价 | 自动气象站_气象站监测设备_全自动气象站设备_雨量监测站-山东风途物联网 | 南京精锋制刀有限公司-纵剪机刀片_滚剪机刀片_合金刀片厂家 | 山东齐鲁漆业有限公司【官网】-工业漆专业生产厂家 | 东亚液氮罐-液氮生物容器-乐山市东亚机电工贸有限公司 | 宝鸡市人民医院 | 液氮罐_液氮容器_自增压液氮罐-北京君方科仪科技发展有限公司 | 定做大型恒温循环水浴槽-工业用不锈钢恒温水箱-大容量低温恒温水槽-常州精达仪器 | 电子厂招聘_工厂招聘_普工招聘_小时工招聘信息平台-众立方招工网 | 仿古瓦,仿古金属瓦,铝瓦,铜瓦,铝合金瓦-西安东申景观艺术工程有限公司 | 不锈钢散热器,冷却翅片管散热器厂家-无锡市烨晟化工装备科技有限公司 | 粉末冶金-粉末冶金齿轮-粉末冶金零件厂家-东莞市正朗精密金属零件有限公司 | 宝元数控系统|对刀仪厂家|东莞机器人控制系统|东莞安川伺服-【鑫天驰智能科技】 | 耐酸碱胶管_耐腐蚀软管总成_化学品输送软管_漯河利通液压科技耐油耐磨喷砂软管|耐腐蚀化学软管 | 珠光砂保温板-一体化保温板-有釉面发泡陶瓷保温板-杭州一体化建筑材料 | HDPE土工膜,复合土工膜,防渗膜价格,土工膜厂家-山东新路通工程材料有限公司 | LED灯杆屏_LED广告机_户外LED广告机_智慧灯杆_智慧路灯-太龙智显科技(深圳)有限公司 | YAGEO国巨电容|贴片电阻|电容价格|三星代理商-深圳市巨优电子有限公司 | 滑板场地施工_极限运动场地设计_滑板公园建造_盐城天人极限运动场地建设有限公司 | 卫生人才网-中国专业的医疗卫生医学人才网招聘网站! | 超声波焊接机,振动摩擦焊接机,激光塑料焊接机,超声波焊接模具工装-德召尼克(常州)焊接科技有限公司 | crm客户关系管理系统,销售管理系统,crm系统,在线crm,移动crm系统 - 爱客crm | 避光流动池-带盖荧光比色皿-生化流动比色皿-宜兴市晶科光学仪器 东莞爱加真空科技有限公司-进口真空镀膜机|真空镀膜设备|Polycold维修厂家 | 武汉EPS线条_EPS装饰线条_EPS构件_湖北博欧EPS线条厂家 | arch电源_SINPRO_开关电源_模块电源_医疗电源-东佑源 | 全自动过滤器_反冲洗过滤器_自清洗过滤器_量子除垢环_量子环除垢_量子除垢 - 安士睿(北京)过滤设备有限公司 | 不锈钢丸厂家,铝丸,铸钢丸-淄博智源铸造材料有限公司 | 气动隔膜泵-电动隔膜泵-循环热水泵-液下排污/螺杆/管道/化工泵「厂家」浙江绿邦 | 深圳市宏康仪器科技有限公司-模拟高空低压试验箱-高温防爆试验箱-温控短路试验箱【官网】 | 东莞螺丝|东莞螺丝厂|东莞不锈钢螺丝|东莞组合螺丝|东莞精密螺丝厂家-东莞利浩五金专业紧固件厂家 | 糖衣机,除尘式糖衣机,全自动糖衣机,泰州市长江制药机械有限公司 体感VRAR全息沉浸式3D投影多媒体展厅展会游戏互动-万展互动 | 消电检公司,消电检价格,北京消电检报告-北京设施检测公司-亿杰(北京)消防工程有限公司 | 不锈钢搅拌罐_高速搅拌罐厂家-无锡市凡格德化工装备科技有限公司 | 优秀的临床医学知识库,临床知识库,医疗知识库,满足电子病历四级要求,免费试用 | 展厅设计公司,展厅公司,展厅设计,展厅施工,展厅装修,企业展厅,展馆设计公司-深圳广州展厅设计公司 |