Android UiAutomator :关于Object属性clickable为false处理

本文介绍了一种在UiAutomator脚本中处理clickable属性为false的问题解决方案,通过获取目标对象的坐标并使用UiDevice.click方法实现点击操作。

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

 UiAutomator 脚本编写过程中Ui 界面控件的获取是最为重要的,但有时因为Object属性问题,而无法对该Object进行操作。

最为典型的即为 clickable 属性,当获取的Object clickable属性为false 的时候,就无法对该Object 进行click操作了,类似还有 checkable,scrollable.
在这里简单讲一下,避规Object clickable属性为false的方法。

  1. 首先查看Object 属性可以通过uiautomatorviewer。
    clickable 属性为 false
    当clickable 属性为false的时候,就无法通过 Object.click()方法执行点击操作了。

  2. 解决方法:获取Object 的坐标(x,y),再通过UiDevice.click(int x, int y) 方法来实现click操作。

  3. 相关代码

            UiObject Login = new UiObject(new UiSelector().text("Log In"));
            try {
                Rect rtLogin = Login.getVisibleBounds();
                //获取rtLogin 的 Rect 参数
                device.click((rtLogin.left + rtLogin.right) / 2, (rtLogin.top + rtLogin.bottom) / 2);
                //取Object Rect中间点为坐标点 
            } catch (Exception e) {
                System.out.println("can not find Login");
                ScreenShot(device, phonenumber + "----" + password);
                return false;
            }

这里的Rect 值在uiautomatorviewer 中即为Object 的 bounds 属性
bounds属性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值