在adroido上用uiautomator做自动化测试时,界面有多个相同class,怎么获取每一个class的bounds并将他们存入集合
时间: 2024-02-18 19:58:56 浏览: 112
android UI 自动化测试 控制多机进行测试
在 uiautomator 中,如果界面上有多个相同 class 的控件,可以使用 `findObjects(By.clazz())` 方法来获取所有符合条件的控件。然后遍历每个控件,获取其 `getBounds()` 方法返回的矩形区域,最后将这些矩形区域存入集合中。
示例代码如下:
```
UiDevice device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
UiObject2List list = device.findObjects(By.clazz("android.widget.Button"));
List<Rect> boundsList = new ArrayList<>();
for (UiObject2 button : list) {
boundsList.add(button.getVisibleBounds());
}
// 打印所有矩形区域
for (Rect bounds : boundsList) {
Log.d(TAG, "bounds: " + bounds.toString());
}
```
这段代码将会查找所有 class 为 `android.widget.Button` 的控件,并将其矩形区域存入 `boundsList` 集合中,最后打印出所有矩形区域。
阅读全文