gpt4 book ai didi

android - 将应用程序设置为与 UI 自动程序的默认按钮交互

转载 作者:行者123 更新时间:2023-12-02 12:19:24 24 4
gpt4 key购买 nike

我有一个测试用例,其中在应用程序中打开了“设置为默认值”提示。我想用 UI automator 测试它,我成功地测试了那个案例,但不是 100% 可靠。不幸的是,有些设备有用大写字母写的“设置为默认值”提示按钮,而有些则没有,所以我无法为这个测试用例创建 100% 可靠的测试。我在下面编写了这段代码,但是当通过文本获取“设置为默认值”按钮时,字母大小写不起作用,但是当我想与该按钮交互时,文本大小写很重要。在这种情况下,切换 IF-ELSE 案例并不能解决问题。不知何故,当我想按下这些时,所有对话框按钮 ID 都不起作用(button1、button2..)。

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()
}
}
}

最佳答案

您可以使用 Pattern 对象而不是使用字符串。

您可以在您的代码中使用:

val pattern = Pattern.compile("Set as default", Pattern.CASE_INSENSITIVE)
val setDefaultText = device.findObject(UiSelector().text(pattern))
if(setDefaultText != null)) {
setDefaultText.click()
} else {
clickDialogPositiveButton()
}

关于android - 将应用程序设置为与 UI 自动程序的默认按钮交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61122851/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com