背景:
我正在尝试使用XCode GM在iOS 9.0中进行ui级别测试。
问题:
XCode GM中是否有命令可以让您查看可访问元素及其关系的“树”?类似于Appium中的'page'命令?
理想情况下,我可以在调试器中运行一个命令,它会给我一个可供选择/操作的元素列表。目前,您可以在单个XCUIElement上使用debugDescription,但只提供该元素的信息。
答案 0 :(得分:14)
设置一个断点,您希望在调试器类型中看到树...
po print(XCUIApplication().debugDescription)
打印出XCUITesting可以访问的所有内容。您也可以将其投入测试:
func testTreeExample() {
XCUIApplication().buttons["login"].tap()
print(XCUIApplication().debugDescription)
XCUIApplication().buttons["next"].tap()
print(XCUIApplication().debugDescription)
}
如果您在查找某些内容时遇到困难,可以自动打印应用程序在您执行操作后立即看到的内容。
答案 1 :(得分:10)
这并不是您所要求的,但Xcode的辅助功能检查器使您可以更轻松地查看您可以通过标识符访问哪些元素的视图层次结构。 (N.B.这不是IB的辅助功能面板中的“标签”,它是“标识符”字段。):
在Xcode 7.2中,打开 Xcode-> Open Developer Tool-> Accessibility Inspector 。 (您可能需要授予应用程序在“系统偏好设置”中运行的权限。)然后从Xcode启动iOS应用程序并将鼠标悬停在SIMULATOR中的任何UI元素上。您将看到有关元素类型,描述,层次结构等的全面信息。
无论何时记录UI操作并且输出看起来不正确,请使用该工具确定需要添加,更改或删除的可访问性描述。 (我花了几天时间试图通过UI测试工具来深入嵌入UISegmentedControl进行更改,一旦我弄清楚如何使用辅助功能检查器工具,问题就变得明显了。)
感谢shinobicontrols.com的人们提供了很棒的建议!
答案 2 :(得分:4)
我建议从菜单栏中选择:Debug>查看调试>在调试中运行时捕获视图层次结构。您不仅可以直观地表示视图,还可以显示左侧调试导航器的层次结构。这可能与UI测试的观点不是一对一的,但它可能非常有用。希望有所帮助。
答案 3 :(得分:0)
Appium执行此操作的方式是使用Facebook WebdriverAgent。 据我所知,他们的方法实质上是从根应用程序元素开始,并收集有关每个孩子的信息,然后递归。
答案 4 :(得分:0)
使用TOOLTIP
命令,您可以获取屏幕上所有元素(而非整个应用程序)的可访问性信息https://fbidb.io/docs/commands#accessibility-info