1

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

UI 树不了解SeekBar内部结构。似乎不可能使用 Espresso 直接针对其中一个节点;它所看到的只是一个SeekBar.

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

uiautomatorviewer

我的目标是在匹配器中控制其中一个虚拟视图并对其执行click。就像是...

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

whereonVirtualView将类似于onView. 我不知道如何以编程方式访问此辅助功能树以及是否可以触发对其进行操作。有人可以阐明这种技术的可行性吗?

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

4

1 回答 1

0

您可以通过索引指定子视图(虚拟视图)。像这样的东西:

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

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

于 2016-03-11T07:59:26.790 回答