У меня есть тестовый случай, когда в приложении открывается окно «Установить по умолчанию». Я хочу протестировать это с помощью автоматизатора пользовательского интерфейса, и мне это удалось, но не на 100% надежно. К сожалению, на некоторых устройствах кнопка подсказки «Установить по умолчанию» написана заглавными буквами, а на некоторых нет, поэтому я не могу создать 100% надежные тесты для этого теста. Я написал этот код ниже, но при получении кнопки «Установить по умолчанию» по тексту регистр букв не играет роли, но когда я хочу взаимодействовать с этой кнопкой, текстовый регистр важен. Переключение случаев IF-ELSE не решает проблему в этом случае. И почему-то, ни одна из кнопок диалоговых кнопок не работает (button1, button2 ..), когда я хочу нажать их.
val roleManager = activity.applicationContext?.getSystemService("role") as RoleManager
if (roleManager.isRoleAvailable(android.app.role.ASSISTANT)) {
if (!roleManager.isRoleHeld(android.app.role.ASSISTANT)) {
val myApp = device.findObject(UiSelector().textMatches(InstrumentationRegistry.getInstrumentation().targetContext.getString(R.string.app_name)))
myApp.click()
sleepLong()
var setAsDefaultButton: UiObject? = null
if (device.findObject(UiSelector().text("Set as default")) != null) {
setAsDefaultButton = device.findObject(UiSelector().text("Set as default"))
setAsDefaultButton?.click()
} else if (device.findObject(UiSelector().text("SET AS DEFAULT")) != null) {
setAsDefaultButton = device.findObject(UiSelector().text("SET AS DEFAULT"))
setAsDefaultButton?.click()
} else {
clickDialogPositiveButton()
}
}
}
}