社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

AirPython • 5 年前 • 690 次点击  


前言
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 portserialno 是 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 上执行发送好友申请的一系列操作
  4. 切换当前操作手机为设备 B
  5. 在手机 B 上执行通过好友申请的一系列操作 
  6. 俩台手机成功互加好友

# -*- encoding=utf8 -*-
__author__ = "xiaoming"
from airtest.core.api import *
auto_setup(__file__)

# 连上第一台手机(设备A)
dev1 = connect_device("Android://127.0.0.1:5037/SJE5T17B170xxxxx")
# 第二台手机(设备B)
dev2 = connect_device("Android://127.0.0.1:5037/2b3ab9axxxx")

# 切换当前操作手机为设备A
set_current("SJE5T17B170xxxxx")

# 在设备A上发送好友申请
pass

# 切换当前操作手机为设备B
set_current("2b3ab9axxxx")

#在设备B上接受好友申请
pass
最后,脚本执行结果可以查看下方的小视频如下:




推荐阅读


10万+的短视频被批量生产了,Python表示不服

视频剪辑什么鬼?Python 带你高效创作短视频

短视频篇 | Python  带你进行短视频二次创作





THANDKS
- End -
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/52748