专栏名称: AirPython
分享 Python 自动化及爬虫、数据分析实战干货,欢迎关注。
目录
相关文章推荐
北美留学生观察  ·  福建,出了多少外国领导人? ·  16 小时前  
移民(微博搜索)  ·  移民(微博搜索)-20250227-4 ·  昨天  
北美留学生观察  ·  EB5爆雷!绿卡没拿到手,百万资金也打了水漂... ·  昨天  
北美留学生观察  ·  注意!「签证规则有变」,华人妈妈探亲被关机场 ... ·  2 天前  
移民(微博搜索)  ·  移民(微博搜索)-20250226-1 ·  2 天前  
51好读  ›  专栏  ›  AirPython

Python 自动化帮你实现微信互加好友

AirPython  · 公众号  ·  · 2020-01-09 17:29

正文


前言
Airtest 支持在一个脚本中连接上多台手机,但是需要注意的是,并不是能够自动让这一个脚本在多台手机上跑,而是能够在脚本中使用这几台手机, 实现一些类似于多机协作的效果

下文我们将以 俩台手机相互添加微信好友 的案例,来展示多机协作的效果。

在同一脚本内连接多台设备

使用 IDE 连接
IDE 给我们提供了连接多台手机设备的功能(以 Android 设备为例)。 首先,我们需要保证手机正确连上了电脑; 然后在 IDE 移动设备连接面板内,点击 刷新ADB ,可以正常显示连接上电脑的设备:


先点击任意一个设备的 connect 按钮,连接上该设备后,设备镜像右上角会出现俩个按钮,左边的按钮就是用来 切换设备或者切换到刚才连接设备的面板


点击 Connection Panel ,即可回到连接设备面板,再继续连接另外一台设备:


当这俩台设备都成功连接上 IDE 之后,我们就可以利用刚才切换连接面板的按钮,来随意切换设备镜像:


此时在 AirtestIDE 编写好脚本以后,点击运行脚本的按钮,IDE 将会自动在命令行中添加多个 --device 参数,把当前连接的手机都告诉脚本,无需其他额外操作:


在脚本内连接
除了使用 IDE 直接连接多台设备以外,我们还可以在脚本里使用多个 connect_device 语句,分别传入手机连接串信息即可:
from airtest.core.api import *
# 连上第一台手机
dev1 = connect_device("Android://127.0.0.1:5037/serialno1")
# 连上第二台手机
dev2 = connect_device("Android://127.0.0.1:5037/serialno2")
其中 127.0.0.1 代表本机 IP, 5037 是默认的 adb port serialno android 手机的序列号。

在命令行连接
如果我们的脚本内没有编写连接设备的语句,那么在命令行运行脚本时,则需要将手机依次使用 --device Android:/// 添加到命令行中,例如:
>airtest run untitled.air --device Android:///serialno1 --device Android:///serialno2 --device Android:///serialno3

多台设备之间的切换

在连接多台手机后,我们能够在Airtest的全局变量 G.DEVICE_LIST 中看到所有当前连接中的设备:
print(G.DEVICE_LIST)
# 此时设备列表为[dev1, dev2]

也可以使用 set_current 接口在多台设备之间切换,这个接口切换设备的方式有俩种:

# 第一种:传入数字012等,切换当前操作的手机到Airtest连接的第1台、第2台、第3台手机
set_current(0)
set_current(1)
set_current(2)

# 第二种:切换当前操作的手机到序列号为serialno1serialno2的手机
set_current("serialno1")
set_current("serialno2")

编写微信互加好友脚本并运行

只要弄清楚如何连接多台设备以及如何切换当前操作的手机,接下来我们就可以非常轻易地写出微信互加好友的脚本,该脚本的大致思路是:
  1. 连接上 2 台安卓手机设备
  2. 切换当前操作手机为设备 A
  3. 在手机 A 上执行发送好友申请的一系列操作






请到「今天看啥」查看全文


推荐文章
北美留学生观察  ·  福建,出了多少外国领导人?
16 小时前
移民(微博搜索)  ·  移民(微博搜索)-20250227-4
昨天
移民(微博搜索)  ·  移民(微博搜索)-20250226-1
2 天前
热门视频集汇  ·  高 手果然在民间,牛牛牛牛
8 年前