我有一个Android应用程序,使用uiautomator单击列表视图中的选项。 ListView看起来像这样:
我正在尝试单击“完整基准”列表项,但我的代码无法识别列表项。这就是我所拥有的:
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();
我将不胜感激任何帮助!
答案 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:
UiCollection dummyList = new UiCollection(new UiSelector().className("android.widget.ListView").index(3));
UiObject dummyBenchmark = dummyList.getChildByText("Full Benchmark");
方法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。这似乎在选择标准中缺失。