如何使用KIF

时间:2015-08-18 15:18:57

标签: ios ui-testing kif

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

如果我使用此代码一次:

- (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_TFL_WRITE_YOUR_TEXT

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

而不是

[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)];

出于我的解释目的,我们可以说第一次进入"第一次"第二次进入"第二次"。

我不完全确定该错误,但我确实知道测试会失败,因为如果您没有先清除文本字段,那么您将添加到第一个条目。这意味着文本字段现在会说" firstsecond"。 KIF将文本放入文本字​​段后第二次检查"秒"但它找不到它,因为文本字段实际上包含" firstsecond"所以它会失败。