如何使用动态标识符检查 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 测试而编写的一些参考资料:
我开始使用 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 测试而编写的一些参考资料: