Xcode UI 测试(目标 C):通过 Accessibility Label 查找元素

Posted

技术标签:

【中文标题】Xcode UI 测试(目标 C):通过 Accessibility Label 查找元素【英文标题】:Xcode UI Testing (Objective C): find element by Accessibility Label 【发布时间】:2015-12-02 07:22:08 【问题描述】:

我正在测试的应用程序有一个元素(UIAStaticText),它启用了辅助功能(带有辅助功能标签“Progress”)。

使用 Swift 访问这个元素很容易,并且有据可查。但是我的应用程序的源代码在 Objective C 中。

如何使用 Xcode UI 测试和 Objective C 访问这个元素?

【问题讨论】:

你可以在你的 UI 测试模块中使用 swift,在你的项目代码中使用 Objective-c。两者可以携手合作。 关于如何操作的任何想法或参考?我搜索时得到的唯一结果,涉及很多“黑客行为”。 我的代码在 Objective-c 中,并使用 swift 进行 UI 测试。您只需添加 UI 测试模块并选择 swift 作为其语言。我使用this tool,它在“入门”部分中也列出了很多参考资料,应该对您有所帮助。 哇,我应该试试这个。谢谢,谢谢! 【参考方案1】:

我找到了一种方法来做到这一点。这确实让我得到了正确的元素 - 但我觉得必须有一个更简单的答案,它不依赖于我知道元素的类型 (staticText)

如果有人有更好的答案,欢迎投稿。

XCUIElement *progressTextByAccessibility = [[app staticTexts] elementMatchingType:XCUIElementTypeStaticText identifier:@"Progress"];

【讨论】:

我最终转向了 Swift。显然这是可能的:)虽然它没有直接解决我的问题,但它运行得很好。

以上是关于Xcode UI 测试(目标 C):通过 Accessibility Label 查找元素的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 7 UI 测试目标语言环境和区域设置

Xcode UI 测试:我可以使用 UI 测试脚本访问目标应用程序文件夹吗?

如何让 Xcode 7 保留来自 UI 测试目标的日志记录输出?

UI 测试 + postNotificationName + 永远不会到达观察者 + Xcode 7

如何为 Xcode UI 测试禁用沙箱

如何在 Xcode 中的 UI 测试类的目标中包含 SwiftyUserDefaults.swift?