Ios 如何使用KIF在同一文本字段中输入文本

Ios 如何使用KIF在同一文本字段中输入文本,ios,ui-testing,kif,Ios,Ui Testing,Kif,我正在使用Kif并尝试使用textfield和add按钮创建一些数据 如果我使用此代码一次: - (void)addTextItem { [tester enterText:[NSString stringWithFormat:@"Test text %@",[self randomStringWithLength:10]] intoViewWithAccessibilityLabel:NSLocalizedString(@"TBP_TFL_WRITE_YOUR_TEXT", nil)]

我正在使用Kif并尝试使用textfield和add按钮创建一些数据

如果我使用此代码一次:

- (void)addTextItem
{
    [tester enterText:[NSString stringWithFormat:@"Test text %@",[self randomStringWithLength:10]] intoViewWithAccessibilityLabel:NSLocalizedString(@"TBP_TFL_WRITE_YOUR_TEXT", nil)];
    [tester waitAndTapTappableViewWithAccessibilityLabel:NSLocalizedString(@"TBP_BTN_ADD_TEXT", nil)];
}
它工作得很好。但如果我再次尝试使用相同的文本字段,例如:

- (void)addTextItem
{
    [tester enterText:[NSString stringWithFormat:@"Test text %@",[self randomStringWithLength:10]] intoViewWithAccessibilityLabel:NSLocalizedString(@"TBP_TFL_WRITE_YOUR_TEXT", nil)];
    [tester waitAndTapTappableViewWithAccessibilityLabel:NSLocalizedString(@"TBP_BTN_ADD_TEXT", nil)];
    [tester enterText:[NSString stringWithFormat:@"Test text %@",[self randomStringWithLength:10]] intoViewWithAccessibilityLabel:NSLocalizedString(@"TBP_TFL_WRITE_YOUR_TEXT", nil)];
    [tester waitAndTapTappableViewWithAccessibilityLabel:NSLocalizedString(@"TBP_BTN_ADD_TEXT", nil)];
}
我得到这个错误:

步骤在10.00秒后超时:可访问性元素 标签“写你的短语(使用#创建标签)”不可点击。信息技术 可能被其他视图阻止

(正如您所理解的“编写您的短语(使用#创建标记)”=
TBP\u TFL\u编写您的文本

有什么想法吗

而不是

[tester enterText:[NSString stringWithFormat:@"Test text %@",[self randomStringWithLength:10]] intoViewWithAccessibilityLabel:NSLocalizedString(@"TBP_TFL_WRITE_YOUR_TEXT", nil)];
你想用

[tester clearTextFromAndThenEnterText:[NSString stringWithFormat:@"Test text %@",[self randomStringWithLength:10]] intoViewWithAccessibilityLabel:NSLocalizedString(@"TBP_TFL_WRITE_YOUR_TEXT", nil)];
为了便于解释,让我们假设您第一次输入“first”和第二次输入“second”


我不完全确定这个错误,但我知道测试会失败,因为如果您不首先清除文本字段,您将添加到第一个条目中。这意味着文本字段现在将显示“firstsecond”。KIF第二次将文本放入文本字段后,它将检查“second”,但找不到它,因为文本字段实际上包含“firstsecond”,因此它将失败。

clearText也不起作用,如果clearText没有清除文本,我会要求KIF的作者提交一个问题,或者在KIF社区帮助中发布。这是一个非常简单的命令,是KIF的一个主要部分,如果它没有清除文本字段,则会发生其他事情。我建议的另一件事是使用
[tester waitForTimeInterval:20]在第二个文本输入之前和之后添加延迟可能是某些内容仍在加载。数字是秒。两个都从高开始,如果有效,则减少,直到再次出现错误。然后在服务器/模拟器/设备稍慢的日子里选择一个稍高的数字。