如何清理类型为 textField 的 XCUIElement?

How can i clean the XCUIElement which type is textField?

XCUIElement *textField = app.textFields[@"xxxxx"];
[textField tap];
[textField typeText:@"12345678910"];
XCUIElement *key = app.keys[@"xx"]; (the "xx" is delete key)
    for (int a=0; a<11; a++) {
        [key tap];
    }

我想要实现的是

textfield.text = @""

这个方法太慢了。

您可以使用这个小辅助函数在 UITest 期间清除 UITextField 中的文本:

- (void)clearTextField:(XCUIElement *)textField {
    NSString *text = textField.value;
    NSString *deleteString = [@"" stringByPaddingToLength:text.length withString:XCUIKeyboardKeyDelete startingAtIndex:0];
    NSLog(@"%@", deleteString);

    [textField tap];
    [textField typeText:deleteString];
}

此函数从文本字段中获取当前字符串,并为字符串的每个字符模拟删除键。比按几次删除键要快得多。

在您的测试中,您可以简单地调用:

[self clearTextField:textField];

我正在使用这个辅助函数:

-(void)clearField:(XCUIElement *)textField {
    [textField doubleTap];
    [app.menuItems[@"Select All"]tap];
}

并通过以下方式调用它:

[self clearField: app.textFields[@"Last Name"]];