在adroido上用uiautomator做自动化测试时,不能使用uiautomator2的api,界面有多个相同class,怎么获取每一个class的bounds并将他们存入集合,必须使用 UiCollection collection
时间: 2024-02-18 12:59:00 浏览: 155
如果你必须使用 `UiCollection` 来查找符合条件的控件并获取其矩形区域,可以使用以下代码:
```
UiDevice device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
UiCollection collection = new UiCollection(new UiSelector().className("android.widget.Button"));
List<Rect> boundsList = new ArrayList<>();
int count = collection.getChildCount(new UiSelector());
for (int i = 0; i < count; i++) {
UiObject2 child = collection.getChildByInstance(new UiSelector().className("android.widget.Button"), i);
boundsList.add(child.getVisibleBounds());
}
// 打印所有矩形区域
for (Rect bounds : boundsList) {
Log.d(TAG, "bounds: " + bounds.toString());
}
```
这段代码将会创建一个 `UiCollection` 对象,并使用 `getChildCount()` 方法获取符合条件的子控件数量,然后使用 `getChildByInstance()` 方法获取每个子控件,并将其矩形区域存入 `boundsList` 集合中,最后打印出所有矩形区域。注意,这里使用了 `UiCollection` 和 `UiObject2` 两个类,需要将其导入到代码中。
阅读全文