2015-09-25 107 views
3

背景:你怎么看到XCUIElement树?

我用的iOS 9.0 GM XCode的UI级别的测试实验。

问:

有没有在XCode中通用的命令,让你看到一个访问要素及其关系的“树”?与Appium中的'page'命令类似吗?

理想我想能够在这会给我的选择/操作可用元素的列表,调试器中运行的命令。目前,您可以在单个XCUIElement上使用debugDescription,但仅为该元素提供信息。

+0

你找到一种方式来获得这些信息? – MatterGoal

+0

不幸的是,它似乎并不像苹果计划提供的东西。下面的答案可能是解决这个问题的最好方法,但这并不理想。 –

回答

4

我建议从菜单栏中选择:调试>查看调试>在调试运行时,捕获视图层次。您不仅可以直观地表示视图,还可以通过左侧的调试导航器显示层次结构。这可能与UI Testing的观点不是一对一的,但它可能非常有帮助。希望有所帮助。

+2

这真的很酷,但它在可访问性方面没有答案......如果苹果给我们一个方便的方法来获取带有标识符的可用元素的列表,那将会很好。 –

+0

当您在Xcode的视图调试器中选择视图时,右侧的对象检查器显示辅助功能信息。这可能是有用的。 – wolfrevo

6

这不完全是您要求的,但Xcode的辅助功能检查器使您可以更轻松地查看您的视图层次结构,以便通过标识符访问哪些元素。 (注:这不是在IB的的事项,它的“标识符”字段辅助功能面板中的“标签”。):

在Xcode中7.2,打开Xcode->打开开发者工具 - >辅助检查。 (您可能需要为应用程序授予在系统偏好设置中运行的权限。)然后从Xcode启动iOS应用程序,并将鼠标悬停在SIMULATOR中的任何UI元素上。你会看到关于元素的类型,描述,层次等

任何时候你记录UI操作的综合信息和输出看起来不正确,使用该工具来找出描述需要添加,更改了哪些无障碍,或删除。 (我花了几天的时间试图通过UI测试工具获得深度嵌入的UISegmentedControl,并且一旦我想出如何使用辅助工具检查工具,问题就变得很明显。)

感谢shinobicontrols的人。 com为伟大的技巧!

3

设置一个断点,你想看到的树......在调试器类型:

po print(XCUIApplication().debugDescription) 

打印出的一切XCUITesting访问。你也可以扔在您的测试:

func testTreeExample() { 
    XCUIApplication().buttons["login"].tap() 
    print(XCUIApplication().debugDescription) 
    XCUIApplication().buttons["next"].tap() 
    print(XCUIApplication().debugDescription) 
} 

Thta方式,如果你都很难找到的东西,你可以把它autmatically打印出来的应用程序认为你做的东西之后什么。