如何从 UITests 中访问 UITabBarItem?

Posted

技术标签:

【中文标题】如何从 UITests 中访问 UITabBarItem?【英文标题】:How to access UITabBarItem from within UITests? 【发布时间】:2016-03-02 12:23:02 【问题描述】:

用户定义的运行时属性中,我将accessibilityIdentifier 的值设置为browseTabBarButton

但是当我尝试从UITests 访问时,使用:

app.tabBars.buttons["browseTabBarButton"]

UITabBarItem 无法识别。为什么?

【问题讨论】:

你解决过这个问题吗? 这似乎适用于 ios 12,但不适用于 iOS 10。 【参考方案1】:

如果您尝试访问UITabBarItem 以切换选项卡,您可以通过访问UITabBar 中的按钮以不同的方式实现此目的:

app.tabBars.firstMatch.buttons.element(boundBy: 0).tap()

【讨论】:

不错的一个。谢谢!【参考方案2】:

设置accessibilityLabel 而不是accessibilityIdentifier

【讨论】:

accessibilityLabel 是 Voice Over 读出的内容。将其设置为 OP 想要的 ID 是一个糟糕的主意。我也想使用accessibilityIdentifier,因为我需要用不同的语言进行测试,所以我不能依赖按钮标签或将accessibilityLabel 设置为ID。 你解决了吗> 应避免设置可访问性标签,因为它们可以本地化。

以上是关于如何从 UITests 中访问 UITabBarItem?的主要内容,如果未能解决你的问题,请参考以下文章

从 iOS 的 UITests 中读取 Info.plist?

iOS UITests:访问包含动态内容的 UITableViewCells 的重新排序控件元素

UITests-如何在 UITests 中获取当前语言

UITests - 如何在UITests中获取当前语言

如何在 swift UITests 中的 XCUIApplication 中设置暗模式?

如何在 UITests 中选择 UITableView 的一部分?