【问题标题】:How to use a dynamic identifier to check for values of UI elements?如何使用动态标识符来检查 UI 元素的值?
【发布时间】:2016-01-15 11:45:55
【问题描述】:

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

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

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

NSString* requiredValue = "computed string";
XCTAssertTrue(app.staticTexts[requiredValue].exists);

我该如何实现呢?我将不胜感激任何提示或链接到可以回答这个问题的好资源。

【问题讨论】:

    标签: ios objective-c xcode-ui-testing


    【解决方案1】:

    您可以通过其accessibilityIdentifier 而不是其内容/值来引用标签。

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

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

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

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

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

    【讨论】:

    • 太酷了!然后我怎样才能从XCUIElementQuery 访问文本?
    • @SebastianHojas: XCTAssertEqual(app.staticTexts[@"Username"].label, @"can be anything");
    • 啊,完美,这正是我想要的。谢谢!
    猜你喜欢
    • 2021-07-11
    • 2012-11-10
    • 2019-12-18
    • 2017-02-27
    • 2017-08-14
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 2018-01-22
    相关资源
    最近更新 更多