如何在Xcode UItesting中testingUITextField何时文本字段为空?

我在Xcode中做了一个UITest 。 当我logging我的testing它工作正常,但是当我运行testing,它会给出一个错误。

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

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

错误说

UItesting失败 – 找不到与textfield匹配的内容

我想这是因为我的文本字段没有任何初始string,并且testing人员找不到具有初始string"Clear Text"的文本框。

我在YouTube上观看了以下教程。

示威者的代码很好,因为他的文本字段有一个初始string。 (至less这是我认为的问题是)

有没有办法使空白文本字段的testing工作?

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

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

  2. 您可以使用elementBoundByIndex方法在索引处获取textField。 即如果这是您可以使用的应用程序中唯一的textField

     XCUIApplication().textFields.elementBoundByIndex(0) 

得到textField。 (或者当时需要的任何查询来获得特定的textField)

  1. 您可以在代码或故事板中设置辅助function标识符以查找文本字段。

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