【问题标题】:How to enter text in same textfield using KIF如何使用 KIF 在同一文本字段中输入文本
【发布时间】:2015-11-11 14:59:36
【问题描述】:

我正在使用 Kif 并尝试使用文本字段和添加按钮创建一些数据

如果我使用此代码一次:

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

有什么想法吗?

【问题讨论】:

    标签: ios ui-testing kif


    【解决方案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)];
    

    为了便于解释,假设您第一次输入“first”,第二次输入“second”。

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

    【讨论】:

    • clearText 也不起作用,为什么它不能清除文本并且你得到同样的错误
    • 如果 clearText 没有清除文本,我会通过在 github.com/kif-framework/KIF 提交问题或在 groups.google.com/forum/#!forum/kif-framework 在 KIF 社区帮助中发布来询问 KIF 的作者。这是一个非常简单的命令,是 KIF 的主要内容,如果它没有清除文本字段,那么其他事情正在发生。
    • 我建议的另一件事是使用[tester waitForTimeInterval:20]; 在第二个文本输入之前和之后添加延迟,这可能是某些内容仍在加载。数字是秒。两者都从高开始,如果有效,则减少直到再次出现错误。然后为服务器/模拟器/设备稍慢的日子选择一个稍高的数字。
    猜你喜欢
    • 1970-01-01
    • 2016-06-10
    • 1970-01-01
    • 2020-03-14
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多