如何从 uiautomator 获取 android 设备的正确资源 ID?

Posted

技术标签:

【中文标题】如何从 uiautomator 获取 android 设备的正确资源 ID?【英文标题】:how to get the correct resource id for an android device from uiautomator? 【发布时间】:2021-07-28 14:51:52 【问题描述】:

我对 uiautomator 中的资源 ID 有疑问:

btn="id:/image_button_cancel"

为什么有时我们会加上“.*”那是什么意思?

btn="id:/image_button_cancel.*"

【问题讨论】:

【参考方案1】:

这是一个正则表达式。点表示任何字符,星号表示零次或多次重复。

所以使用 btn="id:/image_button_cancel.*" 将匹配任何以 "id:/image_button_cancel" 开头的资源 id。

示例(匹配的 id):

id:/image_button_cancel
id:/image_button_cancel_action

示例(不匹配的 id):

id:/cancel
id:/image_button

搜索正则表达式以更好地理解它。

【讨论】:

【参考方案2】:

我没有完全理解你的问题。能详细点吗?

.*用于通过正则匹配resourceId。

所以 id:/image_button_cancel.* 表示它将匹配任何以 id:/image_button_cancel

开头的 resourceId

例如,

id:/image_button_cancel_1

id:/image_button_cancelQuick

像这样……

【讨论】:

以上是关于如何从 uiautomator 获取 android 设备的正确资源 ID?的主要内容,如果未能解决你的问题,请参考以下文章

uiautomator 可以获取toast吗

[uiautomator篇] 如何获取apk的包名 博客模板

使用 UIAutomation 获取设备模型?

如何使用 Xcode 机器人在模拟器上运行 UIAutomation

在 UIAutomation 中使用accessibilityIdentifier 获取UIElement

如何在 UIAutomation 中从句子中取出特定的单词?