在 Android UIAutomator2 中处理多窗口操作,可以使用 UiDevice
类中的 getWindows()
方法获取当前所有打开的窗口,然后根据窗口的属性(如标题、包名等)来识别和操作特定的窗口。以下是一些基本步骤和示例代码:
- 获取所有打开的窗口:
val windows = device.windows
- 遍历窗口列表,找到目标窗口:
for (window in windows) { val windowTitle = window.title val packageName = window.packageName // 根据需要添加更多属性来识别窗口 if (windowTitle == "目标窗口标题" && packageName == "目标包名") { // 找到目标窗口,可以进行后续操作 break } }
- 对找到的目标窗口执行操作,例如切换到该窗口:
val targetWindow = windows.first { it.title == "目标窗口标题" && it.packageName == "目标包名" } device.setFocus(targetWindow)
- 如果需要切换到其他窗口,可以使用
getWindows()
方法再次获取窗口列表,然后使用setFocus()
方法切换到新的目标窗口。
请注意,这些示例代码是基于 Kotlin 编写的,但你可以根据需要将其转换为 Java 或其他支持的编程语言。此外,处理多窗口操作时可能需要考虑窗口的层次结构和状态变化,以确保操作的准确性。