用AS使用Uiautomator自动化测试QQ

本文介绍了一个使用UI Automator实现的自动化测试案例,该案例演示了如何通过自动化测试打开QQ应用并进入QQ空间,然后退出的过程。案例详细展示了如何通过定位特定的resourceId来实现对应用的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写一个简单的例子,我们完成一个 ” 打开QQ,进入QQ空间,然后退出 ” 的case。
代码如下:

package waps.cn.testuiautomator;

import android.support.test.uiautomator.UiAutomatorTestCase;
import android.support.test.uiautomator.UiDevice;
import android.support.test.uiautomator.UiObject;
import android.support.test.uiautomator.UiObjectNotFoundException;
import android.support.test.uiautomator.UiSelector;

import java.io.IOException;

/**
 * Created by Lisa on 2017/1/24.
 */
public class Test_qq extends UiAutomatorTestCase{
    public void testQQ() throws IOException, UiObjectNotFoundException {

        Runtime.getRuntime().exec("am start com.tencent.mqq/com.tencent.mqq.SplashActivity");
        sleep(3000);

        UiDevice device = getUiDevice();
        int width = device.getDisplayWidth();
        int height = device.getDisplayHeight();
        device.click(width - 50, height - 50);
        sleep(1000);

        UiObject object1 = new UiObject(new UiSelector().resourceId("com.tencent.mobileqq:id/qzone_feed_entry"));
        object1.click();
        sleep(3000);

        UiObject object2 = new UiObject(new UiSelector().resourceId("com.tencent.mobileqq:id/ivTitleBtnLeft"));
        object2.click();
        sleep(1000);

        device.pressMenu();
        sleep(1000);

        UiObject object3 = new UiObject(new UiSelector().text("退出QQ"));
        object3.click();
        sleep(1000);

        UiObject object4 = new UiObject(new UiSelector().text("确定"));
        object4.click();
        sleep(1000);


    }
}

照着网上的例子写,写完之后总是报错说用到的id找不到。之后找到了原因:
//需要先把打开QQ,然后通过am start 才能找到之后用到的resourceId,否则报错id找不到。
如果不打开QQ只能用下面的方式:
getUiDevice().pressHome(); //注意:需要把QQ移到手机的主屏幕上才能找到QQ
UiObject wx = new UiObject(new UiSelector().text(“QQ”));
wx.clickAndWaitForNewWindow();

### 使用 uiautomator2 实现 QQ 登录自动化 为了实现 QQ 的自动登录功能,可以通过 `uiautomator2` 来操作 Android 设备上的应用程序。以下是具体方法: #### 初始化环境并连接设备 确保已安装 Python 和必要的库文件,并且已经成功初始化了 `uiautomator2` 环境。 ```bash pip install --upgrade pip setuptools wheel pip install -U weditor uiautomator2 ``` 接着执行如下命令来启动服务并与设备建立连接[^1]: ```bash python -m uiautomator2 init ``` #### 编写自动化脚本 下面是一个简单的例子展示如何利用 `uiautomator2` 完成 QQ 应用程序的打开以及输入用户名密码的操作过程: ```python import uiautomator2 as u2 d = u2.connect() # 连接到默认设备或指定 IP 地址/序列号 d = u2.connect('device_serial') def qq_login(username, password): try: app_package_name = 'com.tencent.mobileqq' # 启动应用 d.app_start(app_package_name) # 假设进入到了账号密码页面 # 输入手机号码 username_field = d(resourceId="com.tencent.mobileqq:id/login_et_phone_or_qq") if not username_field.exists(): raise Exception("无法找到用户名字段") username_field.clear_text() username_field.set_text(username) # 输入密码 pwd_field = d(resourceId="com.tencent.mobileqq:id/password") if not pwd_field.exists(): raise Exception("无法找到密码字段") pwd_field.clear_text() pwd_field.set_text(password) # 提交表单 (点击登录按钮) login_btn = d(text='登 录') if not login_btn.exists(): raise Exception("找不到登录按钮") login_btn.click() print("登录完成.") except Exception as e: print(f'发生错误: {e}') finally: pass # 可选清理工作 ``` 此代码片段展示了基本流程,实际环境中可能还需要处理更多细节问题,比如验证码验证、滑块验证等额外的安全措施。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值