我想知道是否有任何方法使用亚行命令,通过识别基于文本的元素来模拟连接的设备上的触摸?我想去设备设置使用亚行,并触摸一个特定的选项,基于文本,如‘显示’,'Sim卡经理‘等。一旦我在这个设置,我需要再次触摸一些选项使用他们的文字。
我已经使用UI自动查看器为屏幕上的元素获取“资源-id”和“文本”。他们能被用来定位触控位置吗?
这能用亚行来完成吗?或者还有其他可以使用的工具吗?我需要它是一个脚本,这样它就可以从命令提示符中运行并完成所需的工作。
目前,我正在使用以下命令打开设置,并在选项中导航并选择它们,但这是不可靠的,因为不同的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布局中获取'text‘、'resource-id’和'class-name‘。我只需要知道我是否可以模拟触摸设备的UI来触摸那个特定的区域,如果我知道所写的文字?触摸“设置”图标,还是触摸“打开/关闭”切换开关?
编辑
谢谢大家的帮助!我已经找到了解决我想要的东西的办法。因此,如果您想使用文本在屏幕上触摸某个东西,或者不需要使用“亚行外壳输入键事件”来导航屏幕,就可以下载并使用 uiautomator ( Android测试工具的Python),并使用文本模拟UI上的触摸。
例:
from uiautomator import device as d
d.press.home()
d(text="Settings").click()以上代码按“主页”按钮,单击/触摸UI上“设置”的写入位置,即如果主页上有“设置”图标。与Appium相比,我发现这个解决方案更容易,因为您可以只运行脚本和瞧!
如果您也想运行亚行命令,也可以结合子进程使用uiautomator库。
此外,如果有一种语言的字符不是英文写在UI上,您可以使用UI自动化查看器工具复制文本并将其粘贴到程序中,并使用支持的编码方法运行python脚本。
发布于 2017-03-23 09:39:59
欢迎来到自动化测试世界(即使你真的不想测试任何东西)。
对于Android,你可以使用Espresso或Appium (可能Appium对新手来说更容易)。这些工具将允许您在android设备上自动执行任何您想要执行的场景。
祝好运。
https://stackoverflow.com/questions/42961868
复制相似问题