欢迎来到赛兔子家园

uiautomator2连接移动设备

前置条件:

  • 移动设备必须开启开发者模式;
  • 首次连接必须使用USB线连接;
  • 手机与电脑连接同一个局域网内;
  • 使用tcpip连接时,必须一开始就将所有连接设备的ip地址add connect 添加连接。如果使用tcpip连接一台移动设备IP后就执行,后面使用add connect 添加移动设备IP都会失败;

示例步骤:

需求:通过IP的方式来操作多台安卓手机;

初始化:

1、需要连接的安卓手机都安装好ATX,AtxAgent和UIAutomator服务全部在运行状态;

2、使用USB线将安卓手机与PC进行连接,通过adb devices获取设备ID,对设备进行初始操作

初始化代码:

driver = u2.connect("3987022") # 设备ID
print(driver.uiautomator.running())
print(driver.device_info)

所有需要执行的安卓手机,都需要先执行初始化的操作。

以上操作每台安卓手机都执行完毕后,才能开启adb tcpip 5555 

执行命令:adb tcpip 5555 

依次添加移动设备ip:adb connect ip地址:

adb connect 192.168.10.141
connected to 192.168.10.141:5555  # 添加成功提示

添加完毕后使用:adb devices查看

λ adb devices
List of devices attached
3987022 device
192.168.10.135:5555 device
192.168.10.105:5555 device
192.168.10.141:5555 device

如上述信息说明添加3台移动设备IP成功。

示例代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
__author__ = 'tian'
__data__ = '2022/6/21 11:54'
# software: PyCharm


import uiautomator2 as u2


from adbutils import adb


# 获取所有连接移动设备的IP或设备序号
def get_devices():
    rest = [d.serial for d in adb.device_list()]
    print(rest)
    return rest
rest = get_devices()

# 打印所有连接移动设备信息
for i in rest:
    driver = u2.connect(i)
    print(driver.info)
    print(driver.device_info)
需求:

通过代码启动手机上的app,运行5秒后,退出。

前提条件:

已抖音为例:下载抖音apk到本地,然后将抖音apk安装安卓手机中。

获取抖音apk安装的包名,获取包名方法:通过安卓模拟器安装目录里面bin目录下面aapt工具来获取

命令:aapt  dump badging  xxx.apk  获取到包名

appt dump badging  本地抖音apk的路径

如图:第一行就是抖音的包名

实现代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# author: 青城子
# datetime: 2021/4/11 22:48 
# ide: PyCharm

import uiautomator2 as u2
import time

d = u2.connect_adb_wifi("192.168.3.125:5555")
print(d.info)
# 启动
d.app_start('com.ss.android.ugc.aweme')
# 运行5秒
time.sleep(5)
# 停止抖音app
d.app_stop('com.ss.android.ugc.aweme')
ubuntu系统安装aapt

sudo apt-get install aapt  

如果出现无法解析域名的错误:

编辑etc/resolv.conf文件,在最后加上nameserver 8.8.8.8

sudo vim /etc/resolv.conf  

在最后加上nameserver 8.8.8.8

保存退出,重新安装aapt即可。

输入aapt 如图说明安装成功

 

posted on 2021-05-07 12:06  赛兔子  阅读(3229)  评论(0编辑  收藏  举报

导航