Xcode 7 UI测试XCUIElementQuery随机不正确更新

时间:2015-12-01 01:28:11

标签: ios xcode-ui-testing

我有一个用于解除警报的UI测试,检查警报是否已被解除(如果没有,它会再次尝试解除警报),然后继续进行剩下的测试。

大多数情况下,测试通过时很好,但有时似乎是随机的(虽然更常见的是在具有旧硬件的机器上的模拟器中),测试将执行以下操作:

  • 检查提醒
  • 点击取消警报的按钮
  • 警报被驳回
  • 检查警报(并且仍然找到它 - 我已经在此时记录了查询,它确实找到了被解雇的相同警报)
  • 尝试点按取消警报的按钮
  • 抱怨无法找到提醒并失败

几点说明:

  • 在使用调试器进行测试时,我还没有观察到这种行为。
  • 在解除警报后强制测试稍稍等待(使用usleep()之类的东西)仍然会导致此行为。

为什么查询在被解除后仍然可以找到警报?为什么这种行为看似随意?

1 个答案:

答案 0 :(得分:0)

您是否尝试通过UI Interruption处理程序与警报进行交互?

addUIInterruptionMonitorWithDescription("Alert") { (alert) -> Bool in
    alert.buttons["Allow"].tap()
    return true
}