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