也许我误解了查询和xcuielements是如何工作的,但我想迭代查询的结果。
在我的应用中,我在我的应用的屏幕上发送了两次文本号码/号码。我想检查两个数字是否相同。例如,我的屏幕上显示以下文字。
10/10
0/0
我使用以下代码来查找这两个静态文本元素
XCUIElement *staticTexts = [self.app.staticTexts elementMatchingPredicate:[NSPredicate predicateWithFormat:@"label contains '/'"]];
这会获取两个静态文本元素,但我无法遍历这两个元素来检查标签。如果只检索到一个元素就不会有问题,不幸的是有两个。如果有更好的方法,请告诉我。我是UI测试的新手。
答案 0 :(得分:1)
您正在调用的方法,-elementMatchingPredicate:
仅返回元素。请注意,方法名称是单数。尝试在返回的对象上调用任何方法将导致抛出异常。
我建议您采用稍微不同的方法进行测试。由于您正在编写测试,决定第一个数字应该是什么。然后,您可以使用它来验证第二个数字是否相同。
为此,只需在每个标签上设置不同的-accessibilityIdentifier
即可。然后你可以单独断言每一个。
XCUIApplication *app = [[XCUIApplication alloc] init];
XCTAssertEqual(app.staticTexts[@"Number Input"].value, @"867-5309");
XCTAssertEqual(app.staticTexts[@"Number Confirm"].value, @"867-5309");