android uiautomator单击ListView

时间:2013-06-07 20:08:11

标签: android uiautomator

我有一个Android应用程序,使用uiautomator单击列表视图中的选项。 ListView看起来像这样:

enter image description here

我正在尝试单击“完整基准”列表项,但我的代码无法识别列表项。这就是我所拥有的:

UiScrollable listView = new UiScrollable(new UiSelector().scrollable(
        true).className("android.widget.ListView"));

UiObject item1 = listView.getChildByText(new UiSelector()
.className(android.widget.TextView.class.getName()),
        "Full Benchmark");

item1.click();

我将不胜感激任何帮助!

3 个答案:

答案 0 :(得分:7)

以下是我用来查找的内容,然后单击列表视图中的项目:

//Find and click a ListView item
public void clickListViewItem(String name) throws UiObjectNotFoundException {
    UiScrollable listView = new UiScrollable(new UiSelector());
    listView.setMaxSearchSwipes(100);
    listView.scrollTextIntoView(name);
    listView.waitForExists(5000);
    UiObject listViewItem = listView.getChildByText(new UiSelector()
            .className(android.widget.TextView.class.getName()), ""+name+"");
    listViewItem.click();
    System.out.println("\""+name+"\" ListView item was clicked.");
}

所以在你的情况下,它将是

clickListViewItem("Full Benchmark")

或者:

UiScrollable listView = new UiScrollable(new UiSelector());
listView.setMaxSearchSwipes(100);
listView.scrollTextIntoView(name);
listView.waitForExists(5000);
UiObject listViewItem = listView.getChildByText(new UiSelector()
        .className(android.widget.TextView.class.getName()), "Full Benchmark");
listViewItem.click();

答案 1 :(得分:2)

上述事情有两种方法。

方法1:

  1. 分析用户界面,然后获取列表视图的实例,说包含文本的列表视图是第3列表视图
  2. 创建像UiCollection dummyList = new UiCollection(new UiSelector().className("android.widget.ListView").index(3));
  3. 这样的Uicollection对象
  4. 为基准UiObject dummyBenchmark = dummyList.getChildByText("Full Benchmark");
  5. 创建一个对象

    方法2:

    new UiScrollable(
        new UiSelector().scrollable(true)
    ).scrollIntoView(
        new UiSelector().text("Full BenchMark")
    );
    new UiObject(
        new UiSelector().text("Full BenchMark")
    ).click();
    

答案 2 :(得分:0)

嵌套ViewGroup中有两个TextView,很可能是LinearLayout。这似乎在选择标准中缺失。