【使用 uiautomator2 腳本進行波點音樂app自動化操作的教程】

本教程將指導您使用 uiautomator2 庫編寫腳本,實現自動化操作。如果您需要在設備斷開連接或出現異常時重新連接設備并繼續執行任務,這里有一份詳細的代碼示例和使用說明。

環境準備
  1. 安裝 Python

    • 確保您的系統上安裝了 Python(推薦使用 Python 3.7 及以上版本)。
    • 可以從Python 官網下載并安裝。
  2. 安裝 uiautomator2

    pip install uiautomator2
    
  3. 安裝 ADB

    • 確保您的系統上安裝了 ADB(Android Debug Bridge)。可以從ADB 下載頁面下載。
  4. 連接設備

    • 確保您的 Android 設備通過 USB 連接到計算機,并且開發者模式和 USB 調試已啟用。
腳本代碼

以下是用于連接設備、啟動 ATX-Agent、啟動應用并處理廣告的腳本代碼:

import uiautomator2 as u2
import time
import osdef connect_and_setup_device(retry_interval=1, max_retries=10):retries = 0while retries < max_retries:try:d = u2.connect()if d:print('設備連接成功')breakexcept Exception as e:print(f'設備連接失敗,重試 {retries + 1}/{max_retries} 次,錯誤: {e}')time.sleep(retry_interval)retries += 1retry_interval *= 2  # 指數退避算法else:raise RuntimeError('設備連接失敗,達到最大重試次數。')# 打印設備信息print('設備信息:', d.info)# 啟動 ATX-Agenttry:d.shell('chmod 775 /data/local/tmp/atx-agent')d.shell('/data/local/tmp/atx-agent server -d')d.shell('/data/local/tmp/atx-agent server --nouia')print('ATX-Agent 啟動成功')except Exception as e:print(f'啟動 ATX-Agent 失敗: {e}')raiseprint('連接完成~')return ddef main():d = connect_and_setup_device()os.system('adb shell am force-stop cn.wenyu.bodian')time.sleep(2)num = 1while True:try:# 檢查設備連接狀態d.shell('echo test')os.system('adb shell am start -n cn.wenyu.bodian/cn.wenyu.bodian.MainActivity')print("應用啟動成功")if d(text='跳過廣告').exists:d(text='跳過廣告').click()print("點擊:跳過廣告")time.sleep(2)if d(description='去看看').exists:d.click(0.49, 0.324)print("點擊:去看看")time.sleep(2)try:d.click(0.781, 0.065)print('點擊廣告入口成功')except:print('點擊廣告入口失敗')if d(description='開啟免費模式').exists:d(description='開啟免費模式').click()print('執行:d(description=開啟免費模式).click()')else:d.click(0.574, 0.078)print('開始看廣告了d.click(0.574, 0.078)')d(description='獲取更多時間').click_exists()start_time = time.time()if d(description='關閉聲音').exists:while d(description='關閉聲音').exists:elapsed_time = time.time() - start_timetime.sleep(elapsed_time)print('等待', elapsed_time, '秒')try:d(description='關閉廣告').click_exists()print('廣告已關閉')except Exception as e:print("關閉廣告元素不存在:", e)else:try:d(text='點擊一下,立即免費聽歌').wait(timeout=4)d(text='點擊一下,立即免費聽歌').click()print('點擊一下,立即免費聽歌')time.sleep(2)d.keyevent('4')time.sleep(2)d(resourceId='cn.wenyu.bodian:id/tme_ad_skip_button').click()print('廣告跳過')except Exception as e:print("廣告跳過元素不存在:", e)time.sleep(3)num += 1print('執行第:', num, '次看廣告')except Exception as e:print(f'發生異常: {e}')print("嘗試重新連接設備...")d = connect_and_setup_device()if __name__ == "__main__":main()
使用說明
  1. 連接和啟動設備

    • connect_and_setup_device 函數用于連接設備并啟動 ATX-Agent。如果連接失敗,它會重試多次,并使用指數退避算法增加重試間隔。
  2. 啟動應用并處理廣告

    • main 函數是腳本的入口。它首先連接設備并啟動應用,然后在主循環中執行自動化操作,包括點擊廣告入口、處理廣告等。
    • 如果在執行過程中發生異常,腳本會嘗試重新連接設備并繼續執行。
注意事項
  1. 連接設備

    • 確保設備通過 USB 連接到計算機,并啟用開發者模式和 USB 調試。
  2. 設備權限

    • 運行腳本之前,確保已授予設備必要的權限,例如存儲權限和安裝應用權限。
  3. 異常處理

    • 腳本包含基本的異常處理邏輯。如果遇到更復雜的錯誤場景,可以根據需要擴展異常處理部分。
  4. 調試和日志

    • 在實際使用過程中,可以添加更多的日志信息,以便更好地調試和監控腳本運行狀態。

通過本教程,您可以使用 uiautomator2 庫編寫一個自動化腳本,實現設備連接、應用啟動和廣告處理等操作。如果遇到設備連接問題或異常,腳本會自動重新連接設備并繼續執行,從而提高了自動化任務的可靠性和穩定性。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/22940.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/22940.shtml
英文地址,請注明出處:http://en.pswp.cn/web/22940.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[數據集][目標檢測]盲道檢測數據集VOC+YOLO格式2173張1類別

數據集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路徑的txt文件&#xff0c;僅僅包含jpg圖片以及對應的VOC格式xml文件和yolo格式txt文件) 圖片數量(jpg文件個數)&#xff1a;2173 標注數量(xml文件個數)&#xff1a;2173 標注數量(txt文件個數)&#xff1a;2173 標注…

基于R語言BIOMOD2 及機器學習方法的物種分布模擬與案例分析實踐技術

BIOMOD2是一個R軟件包&#xff0c;用于構建和評估物種分布模型&#xff08;SDMs&#xff09;。它集成了多種統計和機器學習方法&#xff0c;如GLM、GAM、SVM等&#xff0c;允許用戶預測和分析物種在不同環境條件下的地理分布。通過這種方式&#xff0c;BIOMOD幫助研究者評估氣候…

常用接口測試及接口抓包常用的測試工具

一、常用抓包工具 01、F12 Web端的話&#xff0c;google瀏覽器直接F12開發者模式 點擊network進行抓包分析。 02、Fiddler抓包工具 客戶端和服務端的http代理&#xff0c;客戶端所有的請求都要先經過Fiddler&#xff0c;到響應的服務端&#xff0c;然后端返回的所有數據也都…

pytorch數學操作

文章目錄 1.torch.bitwise_not()2.torch.bitwise_and()3.torch.ceil()3.torch.clamp()4.torch.torch.floor() 1.torch.bitwise_not() 在 PyTorch 中&#xff0c;torch.bitwise_not() 是一個函數&#xff0c;用于執行逐元素的位非&#xff08;bitwise NOT&#xff09;操作。 t…

如何組織基于Sqlalchemy的項目

在使用 SQLAlchemy 構建項目時&#xff0c;可以遵循一些常用的組織結構和最佳實踐&#xff0c;以確保項目清晰、易于維護。下面就是我在構建項目時遇到的一些問題&#xff0c;并做了詳細的記錄&#xff0c;為了方便大家學習少走一些彎路。 1、問題背景 在基于Sqlalchemy的項目…

IDEA的使用配置Maven(及selenium+webdriver的下載配置)

一. 下載maven 1. maven官網下載鏈接 2.??安裝第二行第一列的zip壓縮包 ???????? 二. 配置環境變量 1.新建環境變量 2.在系統變量Path環境變量中添加%Maven_HOME%\bin 三.驗證環境變量是否配置成功 winr >cmd>mvn -v 如果出現Maven的版本信息&#xff0…

Matlab解決矩陣微分方程建模(代碼開源)

#用matlab解決施密特正交規范化矩陣之后&#xff0c;我又想到矩陣的微分方程計算量真的太大了&#xff0c;來回轉化讓我頭大&#xff0c;于是我嘗試了一下用matlab建立模型來解決這類問題。 代碼部分如下&#xff1a;注解還挺清晰的&#xff1a; %%%解微分方程組%eg&#xff…

【設計模式】代理模式(結構型)???

文章目錄 1.概念1.1 什么是代理模式1.2 優點與缺點 2.實現方式2.1 靜態代理2.2 動態代理 3. Java 哪些地方用到了代理模式4. Spring 哪些地方用到了代理模式 1.概念 1.1 什么是代理模式 代理模式&#xff08;Proxy Pattern&#xff09;是一種結構型設計模式&#xff0c;它允許…

帶你認識ffmpeg

FFmpeg是一個開源的跨平臺音視頻處理工具集&#xff0c;它提供了豐富的音視頻處理功能和庫&#xff0c;被廣泛應用于音視頻編解碼、格式轉換、流媒體處理等領域。 應用場景&#xff1a; 視頻編解碼&#xff1a;FFmpeg可以對各種視頻格式進行編解碼&#xff0c;包括但不限于AV…

類的特殊成員函數

使用類的嵌套&#xff0c;并自定義析構函數 #include <iostream>using namespace std; class Per{ private:string name;int age;double hight;double weight; public:Per(string name,int age,double hight,double weight):name(name),age(age),hight(hight),weight(we…

圖片如何修改尺寸?四種好用的修改圖片尺寸方法!

圖片如何修改尺寸&#xff1f;圖片是一種常見的文件類型&#xff0c;它存在于什么生活的方方面面&#xff0c;雖然圖片很好用&#xff0c;但是大家日常也要注意圖片的尺寸&#xff0c;如果圖片尺寸不對是會帶來很多問題的&#xff0c;下面小編就舉例說明幾個問題&#xff0c;首…

web 前端技術的一些知識點分享~

css的規則是由選擇器和 組成的 目錄 css的規則是由選擇器和 組成的 CSS&#xff08;層疊樣式表&#xff09;的規則是由選擇器和聲明塊組成的。 選擇器用于選定頁面上的元素&#xff0c;這可以是一個元素標簽&#xff08;如 h1&#xff09;、類&#xff08;如 .classname…

Unity 自定義房間布局系統 設計與實現一個靈活的房間放置系統 ——物體占用的區域及放置點自動化

放置物體功能 效果&#xff1a; 功能&#xff1a; 自定義物體占用區域的大小一鍵調整占用區域調整旋轉度數&#xff0c;分四個擋位&#xff1a; NoRotation&#xff1a;該物體不能調整旋轉。MaximumAngle&#xff1a;每次轉動90。NormalAngle&#xff1a;每次轉動45&#xff…

根據租戶id切換數據源

花了半天時間&#xff0c;使用spring-boot實現動態數據源&#xff0c;切換自如 在一個項目中使用多個數據源的情況很多&#xff0c;所以動態切換數據源是項目中標配的功能&#xff0c;當然網上有相關的依賴可以使用&#xff0c;比如動態數據源&#xff0c;其依賴為&#xff0c;…

銀河麒麟解壓命令

銀河麒麟&#xff08;Kylin&#xff09;操作系統是基于Linux的操作系統分支之一&#xff0c;其使用的解壓命令與Linux系統中的命令基本相同。 在銀河麒麟系統中&#xff0c;常用的解壓命令有以下幾種&#xff1a; 對于.tar文件&#xff1a; tar -xvf file.tar對于.tar.gz或.…

探索營銷系統業務架構的設計與應用

隨著市場競爭的日益激烈和消費者需求的不斷變化&#xff0c;營銷系統作為企業營銷管理的重要組成部分&#xff0c;扮演著至關重要的角色。本文將深入探討營銷系統業務架構的設計與應用&#xff0c;從客戶關系管理、營銷活動管理、數據分析和智能化服務等方面進行全面解析&#…

Innodb Buffer Pool緩存機制(四)預讀與Mysql改進的LRU策略

一、什么是預讀 InnoDB提供了預讀(read ahead)。所謂預讀&#xff0c;就是InnoDB認為執行當前的請求可能之后會讀取某些頁面&#xff0c;就預先把它們加載到Buffer Pool中。根據觸發方式的不同&#xff0c;預讀又可以細分為下邊兩種&#xff1a; 1.1 線性預讀 InnoDB提供了一…

掘金AI商戰寶典-高階班:如何用AI制作視頻(11節視頻課)

課程下載&#xff1a;掘金AI商戰寶典-高階班&#xff1a;如何用AI制作視頻(11節視頻課)-課程網盤鏈接提取碼下載.txt資源-CSDN文庫 更多資源下載&#xff1a;關注我。 課程目錄&#xff1a; 1-第一講用AI自動做視頻(上)_1.mp4 2-第二講用AI自動做視頻(中)_1.mp4 3-第四講A…

U9C的數據查詢視圖Sql

U9C的數據查詢視圖Sql if object_id(TEMPDB..#priceTable) is not null begin drop table #priceTable endcreate table #priceTable (polineCreatedOn date,price varchar(max),itemid varchar(max),purchaseOrderdocno varchar(max),)insert into #priceTable select max(…

阿里云郵件推送服務配置教程:怎么做批發?

阿里云郵件推送的API配置步驟&#xff1f;配置教程有哪些步驟&#xff1f; 阿里云郵件推送服務憑借其高并發、穩定性強和安全性高等特點&#xff0c;成為眾多企業的首選。Aok將詳細介紹如何使用阿里云郵件推送服務進行批發配置&#xff0c;并簡要提及AokSend的優勢。 阿里云郵…