如何使用 `uiautomator2` 控制 Android 设备并模拟应用操作_VIVO手机

发布于:2025-02-11 ⋅ 阅读:(101) ⋅ 点赞:(0)

在 Android 自动化测试中,uiautomator2 是一个非常强大的工具,能够帮助我们通过 Python 控制 Android 设备执行各种操作。今天,我将通过一个简单的示例,介绍如何使用 uiautomator2 控制 Android 设备,执行特定的应用启动、广告跳过以及其他 UI 操作。此示例的目标是自动化控制 vivo 设备上的音乐应用,并演示如何处理启动广告和其他操作。

环境准备

在开始之前,请确保已安装以下 Python 库:

  1. uiautomator2:这是与 Android 设备交互的核心库。
  2. pytest:用于测试框架,帮助我们更好地组织和运行测试。
  3. timesys:用于控制时间和打印输出。

可以通过以下命令安装所需库:

pip install uiautomator2 pytest
代码实现

接下来,我们将展示如何通过 Python 脚本控制 Android 设备,执行打开应用、跳过广告、点击按钮等操作。

1. 连接设备

首先,我们需要通过 uiautomator2 连接到 Android 设备。连接失败时,我们将打印错误信息并跳过当前测试。

import uiautomator2 as u2
import time
import sys
import pytest

# 连接到设备并初始化 uiautomator2
def connect_device():
    try:
        # 尝试连接设备
        d = u2.connect()
        d.press("home")  # 确保设备在主屏幕
        print("设备连接成功")
        return d
    except Exception as e:
        # 连接失败时打印错误信息
        print(f"连接设备失败: {
     e}")
        pytest.skip("前置条件失败,测试阻塞:连接设备失败")
2. 动态等待

我们可以创建一个函数来模拟动态等待,并且在等待过程中打印剩余的时间。这对于调试和监控测试过程非常有用。

# 模拟动态等待过程,并显示剩余时间
def dynamic_sleep(seconds):
    for i in range(seconds, 0, -1):
        print(f"等待中... {
     i} 秒剩余", end="\r")  # 输出剩余时间
        sys.stdout.flush()  # 刷新输出
        time.sleep(1)
3. 自动化操作:打开应用并跳过广告

在实际的应用自动化操作中,我们常常需要跳过启动广告,点击一些按钮来继续操作。在以下的示例中,我们将自动化控制 vivo 设备上的音乐应用,跳过启动广告,并点击按钮进行下一步操作。

# 打开并操作设置应用程序(vivo_neo8_pro打开音乐)
def vivo_neo8_pro_open_bt_music():
    """操作并控制vivo 设备上的音乐应用。"""
    try:
        start_time = time.time()  # 记录开始时间

        

网站公告

今日签到

点亮在社区的每一天
去签到