专栏文章 如何用 Airtest 脚本无线连接 Android 设备?

fishfish-yu · 2023年07月04日 · 4222 次阅读

此文章来源于项目官方公众号:“AirtestProject”
版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途

1. 前言

之前我们已经详细介绍过如何用 AirtestIDE 无线连接 Android 设备: 手把手教你用 AirtestIDE 无线连接手机! ,它的关键点在于,需要先 adb connect 一次,才能点击 connect 按钮无线连接上该设备:

但是有很多同学,在使用纯 Airtest 脚本的形式连接无线设备时,还是遇到了一些困难。今天我们就继续无线连接这个话题,聊聊怎么用纯 Airtest 脚本连接无线 Android 设备。

2. 已知无线设备 ip 的连接方式

1)前置条件

假设我们的电脑,已经与我们的手机建立了无线连接的关系,且我们设置的通信端口为 5555:

adb devices 能查询到我们的无线设备)

2)示例脚本

# -*- encoding=utf8 -*-
__author__ = "AirtestProject"

from airtest.core.api import *
auto_setup(__file__)

connect_device("Android://127.0.0.1:5037/10.228.xx.xx:5555")

snapshot(msg="尝试给无线设备截图")

需要注意,Android 连接字符串为:Android://adbhost:adbport/serialno
对于无线设备,adbhost:adbport仍为本机 adb:127.0.0.1:5037;serialno 为无线设备的 ip 地址和 port。

3. 未知无线设备 ip 的连接方式

1)前置条件

假设我们的电脑与手机,还未建立无线连接关系;但是当前手机 wifi 与电脑处在同一个局域网下,并且:

  • 用 usb 线连接了手机和电脑
  • 打开了手机 USB 调试选项、无线调试选项

2)示例脚本

示例脚本将自动完成:

  • 设置无线通信端口
  • 通过有线连接的方式,获取设备 ip
  • 返回无线连接的字符串列表
# -*- encoding=utf8 -*-
__author__ = "AirtestProject"

from airtest.core.api import *
#导入了 airtest 库中的 ADB 类,这个类提供了与 Android 设备进行交互的方法
from airtest.core.android.adb import ADB
auto_setup(__file__)

def adb_connect_devices():
    # 创建 ADB 实例
    adb = ADB()

    #获取设备的设备号列表
    devices = adb.devices()
    device_list = []

    for dev in devices:
        #设置端口号
        adb.cmd(f"-s {dev[0]} tcpip 5555", device=False)
        sleep(2)
        #初始化设备,并且设置为当前设备
        dev_connect = connect_device(f"Android:///{dev[0]}")
        # 获取当前设备IP地址
        ip = dev_connect.get_ip_address()
        #print(f"dev[0]的IP是{ip}")
        adb.cmd(f"connect {ip}:5555", device=False)
        device_list.append(f"Android://127.0.0.1:5037/{ip}:5555")
    return device_list

if __name__ == '__main__':  
    r = adb_connect_devices()
    print(r)

拿到返回的无线设备字符串列表之后,我们就可以断开数据线连接,愉快的使用无线连接方式了!

['Android://127.0.0.1:5037/10.228.xx.xx:5555', 'Android://127.0.0.1:5037/10.227.xx.xx:5555']

3)输出空列表

当我们看到返回的无线设备字符串列表为空时,应确保设备和电脑是成功连接的,并且打开 usb 调试和无线调试选项:

4. 小结

关于脚本连接无线设备的教程就到这里啦,更多教程可以查看我们的往期文章,或者有什么特别想看的教程,也欢迎给我们留言!


Airtest 官网https://airtest.netease.com/
Airtest 教程官网https://airtest.doc.io.netease.com/
搭建企业私有云服务https://airlab.163.com/b2b

官方答疑 Q 群:117973773

呀~这么认真都看到这里啦,帮忙点击左下角的爱心,给我点个赞支持一下把,灰常感谢~

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册