在终端或命令提示符中输入以下命令来查找设备上的所有按钮列表:
adb shell uiautomator dump && adb pull /sdcard/window_dump.xml && python -c "import xml.etree.ElementTree as ET;tree = ET.parse('window_dump.xml');root = tree.getroot();[print(child.attrib['resource-id']) for child in root.iter('node') if child.attrib.get('class') == 'android.widget.Button']"
上述命令将会使用 uiautomator 工具的dump命令获取设备屏幕信息,并使用 adb pull 命令将结果文件 window_dump.xml 下载到当前目录。 然后,使用 Python 脚本解析 XML 文件并打印出包含类名为 android.widget.Button 的所有节点的resource-id属性。
可以执行以下命令来单击具有指定 resource-id 的按钮:
adb shell input tap x y
其中 x 和 y 是返回的坐标值。
device = MonkeyRunner.waitForConnection()
# 查找按钮
button = None
for i in range(10):
button = device.findViewWithAttribute("class", "android.widget.Button")
if button is not None:
break
MonkeyRunner.sleep(1)
# 单击按钮
if button is not None:
button.touch()
# 关闭设备
device.close()```
该代码使用 waitForConnection() 方法连接到设备,并在设备上查找类名为 android.widget.Button 的按钮。 如果找到按钮,将调用 touch() 方法单击该按钮。 然后,它将关闭设备连接。
上一篇:AndroidADB-failedtoconnectto'192.168.1.4:5037':Connectionrefused”
下一篇:Androidadbconstantlyshows"authorizing"forconnectedphysicaldevice”