如何使用动态标识符检查 UI 元素的值?

How to use a dynamic identifier to check for values of UI elements?

我开始使用 Xcode 进行 UI 测试,我正在尝试检查 UITextField 的值。 我可以通过

轻松做到这一点
XCTAssertTrue(app.staticTexts[@"value of string"].exists);

不过,我确实想对动态内容做同样的事情。理想情况下,我需要像

这样的东西
NSString* requiredValue = "computed string";
XCTAssertTrue(app.staticTexts[requiredValue].exists);

我该如何实现?我将非常感谢任何提示或 link 可能回答这个问题的好资源。

您可以通过 accessibilityIdentifier 而不是 content/value 来引用标签。

首先在生产代码中设置标识符。这也只会在测试期间显示,即使对于启用了辅助功能的用户也不会显示。

UILabel *label = [[UILabel alloc] init];
label.accessibilityIdentifier = @"Username";
label.text = @"can be anything"; // just to prove the point

然后在你的测试中你可以引用它。

XCTAssert(app.staticTexts[@"Username"].exists);

以下是我为帮助 UI 测试而编写的一些参考资料: