gpt4 book ai didi

android - 我们可以使用 adb 命令来触摸屏幕上的元素吗?

转载 作者:行者123 更新时间:2023-11-30 00:38:34 26 4
gpt4 key购买 nike

<分区>

我想知道是否有任何方法可以使用 adb 命令通过根据文本识别元素来模拟连接设备上的触摸?例如:我想使用 adb 进入设备设置,然后触摸基于文本的特定选项,如“显示”、“Sim 卡管理器”等。进入该设置后,我需要再次使用它们的文本触摸一些选项.

我已经使用 UI Automator 查看器获取屏幕上元素的“资源 ID”和“文本”。它们可以用于定位触摸位置吗?

这可以使用 adb 来完成吗?或者还有其他可以使用的工具吗?我需要它是一个脚本,以便它可以从命令提示符运行并完成所需的工作。

目前,我正在使用以下命令打开设置,浏览选项并选择它们,但这是不可靠的,因为不同的 android 版本有不同的 UI 布局:

adb shell am start -S com.android.settings/.Settings
adb shell input keyevent KEYCODE_DPAD_RIGHT
adb shell input keyevent KEYCODE_DPAD_DOWN
adb shell input keyevent ENTER

感谢任何帮助。

提前致谢。

编辑

这个问题被标记为重复,因为它与另一个问 Is there a way to get current activity's layout and views via adb? 的问题相同

然而,我的问题是不同的。我知道如何使用 automator 从 UI 布局中获取“文本”、“资源 ID”和“类名”。我只需要知道我是否可以模拟设备用户界面上的触摸以触摸该特定区域,如果我知道所写的文字?例如:触摸“设置”图标,或触摸“开/关”切换开关?

编辑

感谢大家的帮助!我找到了我正在寻找的解决方案。因此,如果您想使用文本触摸屏幕上的某些内容,或者无需使用“adb shell input keyevents”在屏幕中导航即可自动执行任务,您只需下载并使用 uiautomator (Android uiautomator 测试工具的 Python 包装器。),并使用文本模拟 UI 上的触摸。

例如:

from uiautomator import device as d

d.press.home()
d(text="Settings").click()

上面的代码按下主页按钮,然后单击/触摸 UI 上写有“设置”的地方,即如果您的主页上有“设置”图标。与 Appium 相比,我发现此解决方案更简单,因为您只需运行脚本即可!

如果您也想运行 adb 命令,还可以将 uiautomator 库与子进程结合使用。

此外,如果 UI 上有一种非英语字符的语言,您可以使用 UI Automation Viewer 工具复制文本并将其粘贴到您的程序中,并使用 python 脚本支持的编码方法来跑。

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