如何使用屏幕上的位置(边界)在 UiAutomator 中查找对象

Inê*_*nês 3 android bounds uidevice android-testing android-uiautomator

我想使用 device.findObject() 在屏幕中查找对象,这需要 UiSelector。到目前为止,一切都很好。

问题是我有几个项目只能通过它们在屏幕上的位置来区分,例如,在消息传递应用程序中,所有头像都具有相同的属性,除了它们在屏幕中的位置之外。

我该如何指定这一点?

我想到:

  • 在找到对象后检查属性并在没有此属性的情况下再次进行搜索,但我也找不到任何从搜索中消除对象的方法。
  • 使用 UiCollection 获取所有可能的元素,然后一一检查哪个是正确的。问题:我无法在 UiCollection 中使用 foreach,要查找元素,我只能使用 UiSelector,它与以前有相同的问题。

您有什么建议/解决方案吗?

谢谢。

All*_*air 5

这不是一个很好的解决方案,但您可以使用UiDevice.findObjects(..)返回所有这些。然后使用getVisibleBounds()getVisibleCenter()检查坐标。