国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

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
相關文章:
主站蜘蛛池模板: 怡红院成人网 | 日韩欧免费一区二区三区 | 久草.com| 久久亚洲国产成人影院 | 男人的天堂官网 | 亚洲va久久久噜噜噜久久狠狠 | 亚洲免费观看 | 精品国产一区二区三区成人 | 亚洲人的天堂男人爽爽爽 | 91久久国产口精品久久久久 | 久久88香港三级台湾三级中文 | 久久一区二区精品综合 | 久久久久久久久久久久久久久久久 | 国产精品成人一区二区不卡 | 国产欧美日韩一区二区三区在线 | 久久99国产精品免费观看 | 91理论片午午伦夜理片久久 | cao在线观看 | 男人天堂日韩 | 黄色欧美视频 | 日本免费在线视频 | 日本特黄特色大片免费看 | 男人天堂新地址 | 欧美一级淫片a免费播放口aaa | 国产精品成人aaaaa网站 | 日本在线视频不卡 | 毛片免费在线播放 | 国产美女动态免费视频 | 日本三级网站在线观看 | 亚洲精品视频网 | 香蕉视频黄色在线观看 | 日本一区二区高清不卡 | 在线看片中文字幕 | 欧美久久久久久久一区二区三区 | 中文在线三级中文字幕 | 亚洲男人天堂2017 | 国产伦精品一区二区三区四区 | 国产中文字幕免费观看 | 免费99视频 | 在线精品视频在线观看高清 | 日本精品高清一区二区2021 |