<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          春節(jié)來臨,用 60 行代碼自動(dòng)搶微信紅包

          共 2663字,需瀏覽 6分鐘

           ·

          2021-01-29 10:37

          今日推文速看

          二條:【下載】10本Python入門到進(jìn)階的電子書!
          三條:25條很棒的Python一行代碼,建議收藏!
          四條:學(xué)會(huì)這幾招,年底晉升不慌了!
          五條:全球當(dāng)下最厲害的14位程序員,說沒聽過簡直離譜~.


          ↑?關(guān)注 + 星標(biāo)?,每天學(xué)Python新技能

          后臺(tái)回復(fù)【大禮包】送你Python自學(xué)大禮包


          文 |?某某白米飯

          來源:Python 技術(shù)「ID: pythonall」

          春節(jié)來到,紅包們大概率在微信各大群中肆虐,大家是否都一樣不搶到紅包們心里就感覺錯(cuò)過了一個(gè)億,可總會(huì)被這事那事耽誤而遺憾錯(cuò)過,下面用 Python 寫一個(gè)自動(dòng)搶紅包代碼

          啟動(dòng)入口

          啟動(dòng)程序的配置和公眾號(hào)文章《用 Python + Appium 的方式自動(dòng)化清理微信僵尸好友》的配置一樣

          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?EC

          desired_capabilities?=?{
          ????'platformName':?'Android',?#?操作系統(tǒng)
          ????'deviceName':?'2a254a02',?#?設(shè)備?ID
          ????'platformVersion':?'10.0.10',?#?設(shè)備版本號(hào),在手機(jī)設(shè)置中查看
          ????'appPackage':?'com.tencent.mm',?#?app?包名
          ????'appActivity':?'com.tencent.mm.ui.LauncherUI',?#?app?啟動(dòng)時(shí)主?Activity
          ????'noReset':?True?#?是否保留?session?信息?避免重新登錄
          }

          driver?=?webdriver.Remote('http://localhost:4723/wd/hub',?desired_capabilities)
          #?設(shè)置等待超時(shí)時(shí)間
          wait?=?WebDriverWait(driver,?60)

          點(diǎn)擊進(jìn)入聊天窗口

          微信在一般情況下最新的聊天記錄將被放在第一個(gè),所以只需要打開第一個(gè)聊天窗口檢查有沒有紅包就可以了,用 id 為?com.tencent.mm:id/e3x?可以找到所有的聊天信息,我們?nèi)〉谝粋€(gè)聊天群的索引

          #?進(jìn)入第一個(gè)聊天框
          red_packet_group?=?driver.find_elements_by_id('com.tencent.mm:id/e3x')[0]
          red_packet_group.click()

          找到紅包

          進(jìn)入聊天群后,紅包圖片檢查是否存在紅包,它的 id 為?com.tencent.mm:id/r2

          ?#?檢查紅包
          reds?=?driver.find_elements_by_id('com.tencent.mm:id/r2')
          if?len(reds)?==?0:
          ????driver.keyevent(4)

          搶紅包

          點(diǎn)擊紅包后會(huì)出現(xiàn)以下 3 種情況

          1. 紅包已經(jīng)被自己領(lǐng)取了
          2. 紅包手慢了沒搶到
          3. 紅包未領(lǐng)取

          前兩種情況紅包已經(jīng)失效了,最后一種才是可以打開的紅包

          紅包已經(jīng)失效了

          在上面代碼中都是用 id 檢查元素是否存在,這里使用查找文字已存入零錢手慢了判斷紅包是否已經(jīng)失效

          #?判斷元素是否存在
          def?is_element_exist_by_xpath(driver,?text):
          ????try:
          ????????driver.find_element_by_xpath(text)
          ????except?Exception?as?e:
          ????????return?False
          ????else:
          ????????return?True


          #?領(lǐng)取了
          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()

          刪除紅包

          最后我們將紅包刪除,防止紅包被重復(fù)打開。當(dāng)長按紅包時(shí),微信紅包會(huì)出現(xiàn)刪除按鈕

          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()

          總結(jié)

          這是學(xué)習(xí)并使用 Appium 的第三篇文章,Appium 可以將手機(jī)操作自動(dòng)化,大家學(xué)廢了嗎?

          獲取搶紅包源碼

          ??長按上方二維碼?2 秒
          回復(fù)「搶紅包」即可獲取資料



          1. 厲害了!潘石屹Python考試首秀99分!

          2. 太贊!Python和Excel終于可以互通了

          3. 太火爆了!這一款小游戲火到把服務(wù)器搞癱瘓,合成大西瓜

          4. 全球最大色情網(wǎng)站宣布:封殺特朗普


          點(diǎn)分享
          點(diǎn)收藏
          點(diǎn)點(diǎn)贊
          點(diǎn)在看
          瀏覽 58
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  大香蕉在线视频精品视频 | 天天草女人 | 男女啪啪网站。 | 嫩草视频 | 天堂在线aaa |