利用APPium获取自动浏览获取喵币
生活随笔
收集整理的這篇文章主要介紹了
利用APPium获取自动浏览获取喵币
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
618到了,淘寶和支付寶都有瀏覽任務(wù),簡(jiǎn)單寫(xiě)個(gè)Python腳本自動(dòng)做瀏覽任務(wù),就不用了一個(gè)一個(gè)的點(diǎn),代碼主要通過(guò)APPium+Python寫(xiě)成,有可能有些xpath路徑更新,獲取不到節(jié)點(diǎn),請(qǐng)自行測(cè)試。
代碼:
# -*- coding: utf-8 -*- """ Created on Sat May 30 21:41:43 2020@author: 14504 """from appium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver . common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.common.exceptions import TimeoutException from appium.webdriver.common.touch_action import TouchAction import time import redesired_caps={"platformName": "Android","deviceName": "Redmi_K20","appPackage": "com.taobao.taobao","appActivity": "com.taobao.tao.TBMainActivity","skipServerInstallation": "True","skipDeviceInitialization": "True","noReset": "True" } server = 'http://localhost:4723/wd/hub' driver = webdriver.Remote (server, desired_caps) wait = WebDriverWait(driver, 20)def TBtask(view):try:viewPath='//com.uc.webview.export.WebView[@content-desc="WVUCWebView"]/com.uc.webkit.ay/android.webkit.WebView/android.view.View/android.view.View/android.view.View/android.view.View/android.view.View[7]/android.view.View/android.view.View/android.view.View[1]/android.widget.ListView/android.view.View[{}]/android.widget.Button'.format(view)messagePath='//com.uc.webview.export.WebView[@content-desc="WVUCWebView"]/com.uc.webkit.ay/android.webkit.WebView/android.view.View/android.view.View/android.view.View/android.view.View/android.view.View[7]/android.view.View/android.view.View/android.view.View[1]/android.widget.ListView/android.view.View[{}]/android.view.View'.format(view)message=wait.until(EC.presence_of_element_located((By.XPATH,messagePath))) text=re.search('\((.*?)/(.*?)\)', message.text)first=int(text.group(1))two=int(text.group(2))while(first < two) :print('task{}需要瀏覽{}次,正在瀏覽第{}次......'.format(view,two,first+1)) task=wait.until(EC.presence_of_element_located((By.XPATH,viewPath)))task.click()first_test=firsttime.sleep(27)print('15s瀏覽結(jié)束,正在返回')driver.keyevent(4)time.sleep(2)message=wait.until(EC.presence_of_element_located((By.XPATH,messagePath))) text=re.search('\((.*?)/(.*?)\)', message.text)first=int(text.group(1))two=int(text.group(2))if(first==first_test):print('此任務(wù)不是瀏覽任務(wù),進(jìn)行下一個(gè)任務(wù)')breakprint('task{}瀏覽任務(wù)完成'.format(view))except TimeoutException:print('task{}請(qǐng)求超時(shí),進(jìn)行下一個(gè)任務(wù)'.format(view))def TBmiaobi():print('淘寶瀏覽任務(wù)開(kāi)始.......') try:lieche = wait.until(EC.presence_of_element_located((By.XPATH,"/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.view.ViewGroup/android.support.v7.widget.RecyclerView/android.widget.FrameLayout[6]/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout[4]")))lieche.click()time.sleep(7)TouchAction(driver).tap(x=508, y=1541).perform()getMiaoBi= wait.until(EC.presence_of_element_located((By.XPATH,'//com.uc.webview.export.WebView[@content-desc=\"WVUCWebView\"]/com.uc.webkit.ay/android.webkit.WebView/android.view.View/android.view.View/android.view.View/android.view.View/android.view.View[3]/android.view.View/android.view.View[4]/android.widget.Button')))getMiaoBi.click() for view in range(2,7):if(view != 4):TBtask(view)print('淘寶所有瀏覽任務(wù)已基本完成,還有沒(méi)完成的,請(qǐng)重新開(kāi)始')except TimeoutException :print('淘寶瀏覽任務(wù)超時(shí),程序結(jié)束.......')def ZFBtask():i=1while(i<=5):print('瀏覽第{}次.....'.format(i))try:el1 =wait.until(EC.presence_of_element_located((By.XPATH,"/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.RelativeLayout[2]/android.widget.RelativeLayout/android.widget.RelativeLayout/android.widget.FrameLayout/com.uc.webview.export.WebView/com.uc.webkit.az/android.webkit.WebView/android.view.View/android.view.View[3]/android.view.View/android.app.Dialog/android.view.View[2]/android.view.View[4]/android.view.View[2]/android.view.View/android.widget.Button")))#el1 = driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.RelativeLayout[2]/android.widget.RelativeLayout/android.widget.RelativeLayout/android.widget.FrameLayout/com.uc.webview.export.WebView/com.uc.webkit.az/android.webkit.WebView/android.view.View/android.view.View[3]/android.view.View/android.app.Dialog/android.view.View[2]/android.view.View[5]/android.view.View[2]/android.view.View/android.widget.Button")el1.click()time.sleep(5)driver.keyevent(4)el2 =wait.until(EC.presence_of_element_located((By.XPATH,"/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.RelativeLayout[2]/android.widget.RelativeLayout/android.widget.RelativeLayout/android.widget.FrameLayout/com.uc.webview.export.WebView/com.uc.webkit.az/android.webkit.WebView/android.view.View/android.view.View[1]/android.app.Dialog/android.view.View/android.view.View/android.view.View/android.view.View/android.widget.Button[1]")))#el2 = driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.RelativeLayout[2]/android.widget.RelativeLayout/android.widget.RelativeLayout/android.widget.FrameLayout/com.uc.webview.export.WebView/com.uc.webkit.az/android.webkit.WebView/android.view.View/android.view.View[1]/android.app.Dialog/android.view.View/android.view.View/android.view.View/android.view.View/android.widget.Button[1]")el2.click()i=i+1except TimeoutException:print('請(qǐng)求超時(shí),任務(wù)可能已完成,退出程序')breakprint('支付寶瀏覽任務(wù)完成')def ZFBmiaobi():print('支付瀏覽任務(wù)開(kāi)始.......')try: driver.start_activity('com.eg.android.AlipayGphone','.AlipayLogin')time.sleep(4)TouchAction(driver).tap(x=525, y=661).perform()time.sleep(5)TouchAction(driver).tap(x=646, y=1488).perform()getMiaoBi= wait.until(EC.presence_of_element_located((By.XPATH,'/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.RelativeLayout[2]/android.widget.RelativeLayout/android.widget.RelativeLayout/android.widget.FrameLayout/com.uc.webview.export.WebView/com.uc.webkit.az/android.webkit.WebView/android.view.View[1]/android.view.View/android.view.View[4]/android.widget.Button')))getMiaoBi.click()except TimeoutException:print('請(qǐng)求超時(shí),退出程序')else:ZFBtask()def main():TBmiaobi()print('\n')ZFBmiaobi() if __name__=='__main__':main()?
總結(jié)
以上是生活随笔為你收集整理的利用APPium获取自动浏览获取喵币的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 淘宝天猫自动领取喵币
- 下一篇: Silverlight——施工计划日报表