如何清理XCUIElement哪个类型是textField?

时间:2017-09-26 09:35:30

标签: objective-c xcode-ui-testing

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 = @""

这个方法太慢了。

2 个答案:

答案 0 :(得分:1)

你可以使用这个小助手函数在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];

答案 1 :(得分:0)

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

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

并通过以下方式调用:

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