您好,登錄后才能下訂單哦!
如何使用Airtest薅短視頻的羊毛,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
Airtest是網易出品的一款基于圖像識別和poco控件識別的一款UI自動化測試工具。Airtest的框架是網易團隊自己開發的一個圖像識別框架,這個框架的祖宗就是一種新穎的圖形腳本語言Sikuli。Sikuli這個框架的原理是這樣的,計算機用戶不需要一行行的去寫代碼,而是用屏幕截屏的方式,用截出來的圖形擺列組合成神器的程序,這是Airtest的一部分。
??另外,Airtest也基于poco這個U控件搜索框架,這個框架也是網易自家的跨平臺U測試框架,原理類似于appium,通過控件的名稱,id之類的來定位目標控件,然后調用函數方法,例如click(),swip()之類的方法來對目標控件進行點擊或者是操作。
我使用Airtest而不適用appium主要是因為Airtest環境搭建非常方便,基本上安裝后就把所有需要的工具都集成了,包括python和adb,Airtest中的Python和本機的Python是不一樣的,所以要在本機運行還需要額外安裝Python庫:pip install poco
。因為Airtest是網易開發的,所以擁有比較友好的文檔和教程。
官方文檔
Airtest快速上手教程
airtest-ide教程
airtest教程
這次要寫的一個例子是抖音極速版賺金幣的簡單薅羊毛例子,非常簡單,主要是為了使用Airtest。
https://airtest.netease.com/
下載對應平臺的安裝包,安裝完后正常啟動即可
打開Airtest,在右側點擊刷新ADB,會出現已經連接到電腦的機器(一定要打開USB調試模式),如果沒有的話,就重啟ADB,再進行刷新。出現連接機器后,在connect后面的下拉列表出現三個選項:Use javacap、Use ADB orientation、Use ADB touch。為了不出現莫名其妙的問題,最好全部選中,然后點擊connect連接,就能顯示出系統桌面。
Airtest在執行的過程中,會向手機安裝幾個軟件:Yosemite(一種輸入法,主要是執行輸入文字)、pocoservice-debug(執行Airtest發來的命令),在連接真機的過程中,報了一個錯誤Failure [INSTALL_FAILED_OLDER_SDK]
,手機版本太低,不能安裝數據包。我有一個古董機,512運存的,Android版本是4.3,所以測試的時候一定要注意Android版本哦
這一篇我們主要不是講Airtest教程,所以不進行詳細講解。這里我推薦一個非常好的學習網站--嗶哩嗶哩,就是這個二次元編程網站。上面有很多詳細的視頻教程,花一個小時看一下,再把官方教程過一遍,就差不多了。我們就以實例代碼進行簡單講解。
代碼如下:
from airtest.core.api import *
from airtest.cli.parser import cli_setup
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
class DouYin:
def __init__(self):
if not cli_setup():
auto_setup(__file__, logdir=True, devices=[
"Android://127.0.0.1:5037/emulator-5554?cap_method=JAVACAP&&ori_method=ADBORI&&touch_method=ADBTOUCH"
])
self.poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
size = self.poco.get_screen_size()
self.width = size[0]
self.height = size[1]
def VisitHome(self):
self.poco(text="抖音極速版").click()
# 進入短視頻頁面后,查找推薦元素是否存在
self.poco(name='com.ss.android.ugc.aweme.lite:id/amh').wait(30)
# 找到推薦元素表示已經進入首頁,但是視頻加載需要一些時間,這里等待5秒
sleep(5)
try:
# 初次打開可能會出現青少年模式選項
self.poco(text='我知道了').click()
except:
pass
def LoopMove(self):
start_pos = (0.5 * self.width, 0.8 * self.height)
end_pos = (0.5 * self.width, 0.2 * self.height)
while True:
# 從底部滑到上面,切換視頻
swipe(start_pos, end_pos, duration=1)
# 每個視頻觀看20秒
sleep(20)
if __name__ == '__main__':
douyin = DouYin()
douyin.VisitHome()
douyin.LoopMove()
在使用py腳本運行時,如果是Linux或者macOS的用戶,請注意看運行結果是不是有報錯,提示adb沒有運行權限。
官方文檔已經給我們提示過了
cd /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/airtest/core/android/static/adb/mac
chmod +x adb
主要是auto_setup中連接設備的配置,官方文檔中這樣解釋
我們在連接中增加了參數設置cap_method、ori_method、touch_method,分別對應工具上的三個選項,不設置連接會出問題。
get_screen_size
獲取屏幕大小,這樣對于不同的設備,不同的分辨率,滑動距離都是一樣的。poco(text="抖音極速版").click()
搜索屏幕上的“抖音極速版”元素,點擊打開。要保證抖音在首頁顯示,如果不在首頁要做滑動處理。sleep(5)
視頻加載需要時間,所以這里我們靜候5秒swipe(start_pos, end_pos, duration=1)
執行滑動操作,設置起點和終點以及滑動時間
然后就可以一直薅羊毛了,各種短視頻都可以,當然安裝完APP后,先手動打開登陸一下軟件更好,這樣我們的自動化操作就不需要做這些步驟了。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。