Airtest刷刷抖音

Airtest刷刷抖音

Airtest做点有意思的事情,先来刷个抖音?

github仓库 airtest-douyin

ide01

Get Started

环境准备

手边没有android手机,iOS又懒得搭ios-tagent的环境,于是采用最偷懒的方式:

夜神模拟器装上抖音,用起来跟手机上一样舒服。看了下模拟器占内存200m和CPU 12%左右,还不错。夜神自带了一个多开器,后面分布式刷抖音再玩玩

nox

录制第一版代码

打开AirtestIDE,按照文档连接好模拟器

ide01

为了每次能用代码自动打开抖音,先用右上角的安卓助手查看一下抖音的package id

assistant

手动加上代码

1
2
3
4
APP = "com.ss.android.ugc.aweme"

stop_app(APP)
start_app(APP)

然后将AirtestIDE调到安卓App的录制模式,进行一些操作,对应的代码就录制下来了

ide02

稍微调整代码

自动录制的代码不太好,稍微调整一下

1
poco(boundsInParent="[0.03194444444444444, 0.02734375]").click()

直接改成通过text来识别按钮

1
poco(text="我").click()

后面的上划操作,改成上划屏幕的60%

1
poco("com.ss.android.ugc.aweme:id/ak2").swipe([0, -0.6])

然后按F5运行一遍,一切正常

一直刷下去

简单地修改下最后一行代码,就能一直刷下去了

1
2
3
for i in range(10):
poco("com.ss.android.ugc.aweme:id/ak2").swipe([0, -0.6])
sleep(1)

好人点个赞

继续用IDE的录制功能,进行点赞操作,生成下面的代码

1
poco("com.ss.android.ugc.aweme:id/al8").click()

原来抖音需要登录之后才能点赞,先手动登录吧,代码里面留个TODO

1
2
3
4
if poco(text="输入手机号码").exists():
# TODO: 自动登录
print("先手动登录一下吧~")
break

ide03

然后我们截个图留念

1
snapshot()

再运行一下,效果非常好

snapshot

tips: 点击IDE工具栏的log按钮,你还能看到每步操作的报告。

提交代码

这个脚本里面没有用到图像识别,单个py文件就够了。于是我们从douyin.air里面取出代码文件。这样可以用你喜欢的编辑器打开修改,用python直接运行了。

最终代码在code/douyin.py,直接python运行。

1
python douyin.py

To be continued

  • 录屏替代截图
  • 多开&分布式
  • 图像识别小姐姐点赞