首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我们可以使用adb命令来触摸屏幕上的元素吗?

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

Stack Overflow用户
提问于 2017-03-22 20:19:44
回答 1查看 2.7K关注 0票数 1

我想知道是否有任何方法使用亚行命令,通过识别基于文本的元素来模拟连接的设备上的触摸?我想去设备设置使用亚行,并触摸一个特定的选项,基于文本,如‘显示’,'Sim卡经理‘等。一旦我在这个设置,我需要再次触摸一些选项使用他们的文字。

我已经使用UI自动查看器为屏幕上的元素获取“资源-id”和“文本”。他们能被用来定位触控位置吗?

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

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

代码语言:javascript
复制
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布局中获取'text‘、'resource-id’和'class-name‘。我只需要知道我是否可以模拟触摸设备的UI来触摸那个特定的区域,如果我知道所写的文字?触摸“设置”图标,还是触摸“打开/关闭”切换开关?

编辑

谢谢大家的帮助!我已经找到了解决我想要的东西的办法。因此,如果您想使用文本在屏幕上触摸某个东西,或者不需要使用“亚行外壳输入键事件”来导航屏幕,就可以下载并使用 uiautomator ( Android测试工具的Python),并使用文本模拟UI上的触摸。

例:

代码语言:javascript
复制
from uiautomator import device as d

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

以上代码按“主页”按钮,单击/触摸UI上“设置”的写入位置,即如果主页上有“设置”图标。与Appium相比,我发现这个解决方案更容易,因为您可以只运行脚本和瞧!

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

此外,如果有一种语言的字符不是英文写在UI上,您可以使用UI自动化查看器工具复制文本并将其粘贴到程序中,并使用支持的编码方法运行python脚本。

EN

回答 1

Stack Overflow用户

发布于 2017-03-23 09:39:59

欢迎来到自动化测试世界(即使你真的不想测试任何东西)。

对于Android,你可以使用Espresso或Appium (可能Appium对新手来说更容易)。这些工具将允许您在android设备上自动执行任何您想要执行的场景。

祝好运。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42961868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档