ios - 当文本字段为空时,如何在 Xcode UI 测试中测试 UITextField?

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

我正在 Xcode 中制作一个 UITest。当我记录我的测试时,它工作正常,但当我运行测试时,它给出了一个错误。

这些是发生错误的代码行:

XCUIElement *clearTextTextField = [app.textFields containingType:XCUIElementTypeButton 
                                                      identifier:@"Clear text"].element;
[clearTextTextField typeText:@"sheffield"];

错误说

UI Testing Failure - No matches found for textfield

我想这是因为我的文本字段没有任何初始字符串,测试人员找不到具有初始字符串 "Clear Text" 的文本框。

我看了以下 tutorial on youtube.

演示程序代码运行良好,因为他的文本字段有一个初始字符串。 (至少那是我认为的问题)

有没有办法让测试适用于空文本字段?

最佳答案

有几种方法可以做到这一点。

  1. 如果 textField 有占位符文本,您可以使用占位符文本来查找 textField。

  2. 您可以使用 elementBoundByIndex 方法在索引处获取文本字段。即如果那是当时应用程序中唯一的文本字段,您可以使用

    XCUIApplication().textFields.elementBoundByIndex(0) 
    

获取文本字段。 (或者您当时需要获取特定文本字段的任何查询)

  1. 您可以在代码或 Storyboard 中设置可访问性标识符以查找文本字段。

在设置可访问性标识符之前使用选项 2 是很好的,只要您的 textField 始终可以通过相同的查询找到。此外,如果多个文本字段同时具有相同的占位符文本,选项 1 将失败,因此选项 2 更具吸引力。

关于ios - 当文本字段为空时,如何在 Xcode UI 测试中测试 UITextField?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34658482/

相关文章:

ios - 在表格上显示排序结果 - Swift4

ios - UISearchBar:根据iOS版本不同的风格

objective-c - 如何在 Objective C 中浏览文件夹?

iphone - 不再应用 xcode 应用程序图标

ios - 登录和完成处理程序

swift - 在 Swift 中使用 AVAssetWriter 将 AVCaptureVideoDataOutput 保存到电影文件

ios - AWS : DeveloperAuthenticatedIdentityProvider not firing IOS Swift

ios - 解析查询,图像数组返回空

ios - 在 CloudKit 中保存修改后的数据

JSON 请求并不总是返回相同的响应类型(对象和数组)