UiAutomator 脚本编写过程中Ui 界面控件的获取是最为重要的,但有时因为Object属性问题,而无法对该Object进行操作。
最为典型的即为 clickable 属性,当获取的Object clickable属性为false 的时候,就无法对该Object 进行click操作了,类似还有 checkable,scrollable.
在这里简单讲一下,避规Object clickable属性为false的方法。
首先查看Object 属性可以通过uiautomatorviewer。
当clickable 属性为false的时候,就无法通过 Object.click()方法执行点击操作了。解决方法:获取Object 的坐标(x,y),再通过UiDevice.click(int x, int y) 方法来实现click操作。
相关代码
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 属性