我可以看到EarlGrey用于定位元素的确切UI层次结构吗?

时间:2016-07-07 08:26:50

标签: earlgrey

我正在编写一个失败并出现以下错误的测试:

  

错误Domain = com.google.earlgrey.ElementInteractionErrorDomain Code = 0“找不到元素。” UserInfo = {NSLocalizedDescription =未找到任何元素。}

我可以在生成的屏幕截图中看到我想要匹配的元素存在。我逐步完成了代码,发现earlgrey使用了元素提供程序。当我的测试失败时,我看到了一个ui层次结构转储。我想在特定的断点处打印完全相同的ui层次结构。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

您可以使用GREYElementHierarchy类在EarlGrey测试中的任意位置打印元素层次结构。

UIWindow *hierarchy = [[[UIApplication sharedApplication] delegate] window]);

NSLog(@"Hierarchy: %@", hierarchy);

答案 1 :(得分:1)

EarlGrey FAQ中,您可以在测试中的任何位置添加断点,并在命中时在Xcode的调试窗口中运行:

expression -- print(GREYElementHierarchy.hierarchyStringForAllUIWindows())

这将输出完整的层次结构,因此解析时会有点混乱。

祝你好运