我正在尝试与Espresso测试中的SeekBar
控件进行交互。具体来说,我想点击“节点”的位置,其中节点是可拖动拇指可以捕捉到的位置。
UI树不了解SeekBar
内部。似乎不可能使用Espresso直接定位其中一个节点;它只看到SeekBar
。
相反,我想知道我是否可以使用TalkBack支持的辅助功能树。 uiautomatorviewer
工具确认此树包含每个节点的虚拟视图。每个虚拟视图都有一个内容描述。
我的目标是在匹配器中暂停其中一个虚拟视图并对其执行click
。有点像...
onVirtualView(withContentDescription("banana")).perform(click());
其中onVirtualView
与onView
类似。我不知道如何以编程方式访问此辅助功能树,以及是否可以在其上触发操作。有人能说清楚这项技术的可行性吗?
我知道设置进度值的方法(Espresso - Set SeekBar)。我试图避免使用该方法,因为我希望测试能够灵活地更改插槽数量。
答案 0 :(得分:0)
您可以按索引指定子视图(虚拟视图)。像这样:
onView(nthChildOf(withId(R.id.seekbar), 1)).perform(click());
所以在这里你点击了SeekBar的第二个孩子(索引是1)。 nthChildOf是一个特殊的匹配器,允许您引用一个孩子。您可以在此处找到来源和更多详细信息 - http://droidtestlab.com/additions.html