Kif 测试有时找不到 UITableView

Posted

技术标签:

【中文标题】Kif 测试有时找不到 UITableView【英文标题】:Kif test doesn't find UITableView sometimes 【发布时间】:2014-07-14 12:45:01 【问题描述】:

我正在运行一些 ios Kif 测试,大约 50% 的时间都失败了。我收到以下消息

该步骤在 10.00 秒后超时:找不到视图匹配:accessibilityIdentifier == "Search Results Table"

[tester waitForCellAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:0] inTableViewWithAccessibilityIdentifier:@"Search Results Table"];

有人知道为什么它只是偶尔发生吗?

【问题讨论】:

你是在iOS8.0模拟器上使用Xcode6 Beta吗?我们有时会在 iOS8 sim 上看到这种情况,但它在 iOS7 sim 上是稳定的。 我们还没有使用iOS8.0,但很快就会使用,所以我会记住这一点。 好的,在这种情况下,我们通常会尝试以下方法: 1) 确保设置了可访问性identifier。不是可访问性标签。假设这对你来说很好。 2)尝试确保在视图加载后设置它。放置一个断点并确保该值在那里。假设这也适合你。 3)查看运行单个测试和一次运行所有测试之间是否存在差异,以确保其他测试中没有持久数据影响您当前的测试。 4)如果一切都失败了,我只是放一个断点并进入KIF。祝你好运! @plluke - 非常感谢,您的评论帮助我意识到我们正在设置accessibilityLabel,而不是accessibilityIdentifier。 【参考方案1】:

你是从网上加载东西吗?

尝试添加

[tester waitForTimeInterval: 3.0];

在那一行之前。

【讨论】:

【参考方案2】:

我们找到的解决方案是关闭动画。即使我们使用了“waitForTimeInterval”,动画也会影响测试。我认为如果我们不必关闭动画会更好,但至少我们现在可以继续测试。

[UIView setAnimationsEnabled:NO];

【讨论】:

【参考方案3】:

你真的设置了accessibilityIdentifier而不是accessibilityLabel吗?

检查这个链接,tableview应该使用accessibilityIdentifier https://github.com/kif-framework/KIF/issues/489

【讨论】:

以上是关于Kif 测试有时找不到 UITableView的主要内容,如果未能解决你的问题,请参考以下文章

Apple 的 CI Bots 的 KIF iOS 测试失败

iOS KIF 测试失败

windowsWithKeyWindow 中的 NSInvalidArgumentException 从 XCODE 运行 KIF 测试

iOS 测试:使用 KIF 进行 UITextField 测试的问题

使用 KIF 测试异步 UITableView

在 KIF 测试步骤之间传递数据