如何在uiautomator中获取相同资源ID的所有元素?

时间:2015-06-09 06:32:34

标签: uiautomator android-uiautomator

我是uiautomator的新手。在屏幕上我想选择一个具有资源ID的元素。但是有这么多元素具有相同的资源ID(例如在Instagram应用配置文件中所有视频和具有相同资源ID的图像) )。有什么方法可以让我得到一个具有相同资源ID的所有这些元素的列表吗?元素的唯一可区别特征是它的索引。

2 个答案:

答案 0 :(得分:0)

您可以使用UiCollection而不是UiObject获取所有元素:

UiCollection element = new UiCollection(new UiSelector()....)

但是我不知道如何处理这个后记。我自己也面临着类似的问题。

答案 1 :(得分:0)

public ArrayList<UiObject> getComponents(UiSelector selector) {
    ArrayList<UiObject> objects = new ArrayList<UiObject>();
    boolean next = true;
    int i = 0;
    while(next) {
        UiObject obj = new UiObject(selector.instance(i++));
        if(obj.exists())
            objects.add(obj);
        else
            next = false;
    }
    return objects;
}

它将获取UiObject类的ArrayList中的所有组件,这些组件符合选择器条件。

请保留作者和许可证:)

版权所有(c)2016 Dariusz Mika

http://www.apache.org/licenses/LICENSE-2.0