Ios 如何使用KIF在同一文本字段中输入文本
我正在使用Kif并尝试使用textfield和add按钮创建一些数据 如果我使用此代码一次: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)]
- (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]在第二个文本输入之前和之后添加延迟代码>可能是某些内容仍在加载。数字是秒。两个都从高开始,如果有效,则减少,直到再次出现错误。然后在服务器/模拟器/设备稍慢的日子里选择一个稍高的数字。