如何测试 UITextField in Xcode UI 文本字段为空时测试?
How to test UITextField in Xcode UI Testing when the text field is empty?
我正在 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.
演示程序代码运行良好,因为他的文本字段有一个初始字符串。 (至少那是我认为的问题所在)
有没有办法让测试对空文本字段有效?
有几种方法可以做到这一点。
如果文本字段有占位符文本,您可以使用占位符文本来查找文本字段。
您可以使用 elementBoundByIndex
方法在索引处获取文本字段。即如果那是当时应用程序中唯一的文本字段,您可以使用
XCUIApplication().textFields.elementBoundByIndex(0)
获取文本字段。 (或者你当时需要获取特定文本字段的任何查询)
- 您可以在代码或情节提要中设置可访问性标识符以查找文本字段。
最好在设置可访问性标识符之前使用选项 2,只要您的 textField 总是可以通过相同的查询找到。此外,如果多个文本字段同时具有相同的占位符文本,选项 1 将失败,因此选项 2 更具吸引力。
我正在 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.
演示程序代码运行良好,因为他的文本字段有一个初始字符串。 (至少那是我认为的问题所在)
有没有办法让测试对空文本字段有效?
有几种方法可以做到这一点。
如果文本字段有占位符文本,您可以使用占位符文本来查找文本字段。
您可以使用
elementBoundByIndex
方法在索引处获取文本字段。即如果那是当时应用程序中唯一的文本字段,您可以使用XCUIApplication().textFields.elementBoundByIndex(0)
获取文本字段。 (或者你当时需要获取特定文本字段的任何查询)
- 您可以在代码或情节提要中设置可访问性标识符以查找文本字段。
最好在设置可访问性标识符之前使用选项 2,只要您的 textField 总是可以通过相同的查询找到。此外,如果多个文本字段同时具有相同的占位符文本,选项 1 将失败,因此选项 2 更具吸引力。