iOS 从 XCUIElement 获取 UI 元素

Posted

技术标签:

【中文标题】iOS 从 XCUIElement 获取 UI 元素【英文标题】:iOS get UI element from XCUIElement 【发布时间】:2016-06-09 14:33:29 【问题描述】:

我正在尝试在 UITableView 中测试自定义 UITextField 元素,在单击按钮后显示错误消息。我的元素内部有一个错误图标,所以如果我可以在测试类中有我的自定义 UITextField 对象,我可以检查该图标是否可见。我可以通过以下方式获取 XCUIElement 对象:

XCUIApplication().tables.cells.containingType(.StaticText, identifier: "My placeholder").childrenMatchingType(.TextField).element

如何在 XCTestCase 类中获取 UITextField 对象?

【问题讨论】:

【参考方案1】:

您无法通过 XCTest 与实际的 UITextField 交互,因为该应用运行在与 UI 测试运行器不同的进程中。

您可以通过在您拥有的元素上调用.hittable 来检查文本字段是否可见(即它存在于视图层次结构中并且在屏幕上)。

如果您想测试自定义对象的内部结构,请使用单元测试,您将能够与实际的 UITextField 进行交互,而不是代表它的 XCUIElement。

【讨论】:

以上是关于iOS 从 XCUIElement 获取 UI 元素的主要内容,如果未能解决你的问题,请参考以下文章

XCUIElement 点击不适用于自定义表格视图单元格

Xcode UI 测试:如何在继续测试之前检查下一个 XCUIElement 是啥

在 Xcode 8.3.2 的 UI 测试用例中转换为当前的快速语法“无法调用非函数类型‘XCUIElement’的值”时出错

XCUIElement 存在,但不可命中

iOS UITests - 如何区分两个不同的 XCUIElement?

如何获取 XCUIElement 的值?