2015-11-07 119 views
1

也许我误解了查询和xcuielements如何工作,但我想循环查询的结果。如何遍历多个XCUIElements

在我的应用程序中,我在我的应用程序的屏幕上收到了两次发送的文本编号/编号。我想检查两个数字是否相同。例如,以下文本在我的屏幕上。

10/10 
0/0 

我用下面的代码找到这两个静态文本元素

XCUIElement *staticTexts = [self.app.staticTexts elementMatchingPredicate:[NSPredicate predicateWithFormat:@"label contains '/'"]]; 

这取我的两个静态文本元素,但我也没有办法通过两个迭代检查标签。如果只有一个元素被检索,那么不幸的是会有两个元素。如果有更好的方法来做到这一点,请告诉我。我是新来的UI测试。

回答

1

您正在调用的方法,-elementMatchingPredicate:仅返回元素。请注意,方法名称是单数。尝试调用返回对象上的任何方法将导致引发异常。

我建议采取一种稍微不同的方法来测试。既然你正在写测试决定第一个数字应该是什么。然后您可以使用它来验证第二个数字是否相同。

要做到这一点,只需在每个标签上设置不同的-accessibilityIdentifier即可。然后你可以单独声明每一个。

XCUIApplication *app = [[XCUIApplication alloc] init]; 
XCTAssertEqual(app.staticTexts[@"Number Input"].value, @"867-5309"); 
XCTAssertEqual(app.staticTexts[@"Number Confirm"].value, @"867-5309");