У UiSelector есть много методов для установки критериев поиска в соответствии с целью. Если у меня есть только resourceId и text в качестве параметров, тогда мне просто нужно 4 if-else.
Однако, если у меня есть больше параметров, таких как имя_класса , имя_пакета или textContains , тогда для обработки мне понадобится огромный размер if-else.
Есть ли простой способ вызова UiSelector с помощью неопределенное количество параметров?
val resourceId = bundle["resourceId"] as String?
val text = bundle["text"] as String?
val uiObject = getUiObject(resourceId, text)
private fun getUiObject(resourceId: String?, text: String?): UiObject? {
return if (resourceId != null && text != null)
uiDevice.findObject(UiSelector().resourceId(resourceId).text(text))
else if (resourceId != null)
uiDevice.findObject(UiSelector().resourceId(resourceId))
else if (text != null)
uiDevice.findObject(UiSelector().text(text))
else
null
}