在Espresso测试中与SeekBar虚拟视图交互

时间:2016-03-10 21:36:56

标签: android android-espresso android-accessibility

我正在尝试与Espresso测试中的SeekBar控件进行交互。具体来说,我想点击“节点”的位置,其中节点是可拖动拇指可以捕捉到的位置。

UI树不了解SeekBar内部。似乎不可能使用Espresso直接定位其中一个节点;它只看到SeekBar

相反,我想知道我是否可以使用TalkBack支持的辅助功能树。 uiautomatorviewer工具确认此树包含每个节点的虚拟视图。每个虚拟视图都有一个内容描述。

uiautomatorviewer

我的目标是在匹配器中暂停其中一个虚拟视图并对其执行click。有点像...

onVirtualView(withContentDescription("banana")).perform(click());

其中onVirtualViewonView类似。我不知道如何以编程方式访问此辅助功能树,以及是否可以在其上触发操作。有人能说清楚这项技术的可行性吗?

我知道设置进度值的方法(Espresso - Set SeekBar)。我试图避免使用该方法,因为我希望测试能够灵活地更改插槽数量。

1 个答案:

答案 0 :(得分:0)

您可以按索引指定子视图(虚拟视图)。像这样:

onView(nthChildOf(withId(R.id.seekbar), 1)).perform(click());

所以在这里你点击了SeekBar的第二个孩子(索引是1)。 nthChildOf是一个特殊的匹配器,允许您引用一个孩子。您可以在此处找到来源和更多详细信息 - http://droidtestlab.com/additions.html