错误 - 捕获" NSInternalconsistencyException"," API违规 - 元素是必需参数"

时间:2016-12-05 16:29:57

标签: ios swift xcode xcode-ui-testing

我收到一个错误,我正在努力寻找错误的任何其他相关实例。我正在尝试使用expectationForPredicate创建我的测试以使其异步,但是在使用此方法时,它会在第13行抛出错误caught "NSInternalconsistencyException","API violation - element is a required parameter"

知道为什么会发生这种错误,我该怎么办呢?

  let app = XCUIApplication()
    let alert = XCUIElement()
    let existsPredicate = NSPredicate(format: "exists == true")
    let systemAlert = alert.buttons["OK"]

    testCase.addUIInterruptionMonitorWithDescription("Enable Notifications") { (alert) -> Bool in
            alert.buttons["OK"].tap()
        return true
    }

    self.buttons["Enable notifications"].tap()

    testCase.expectationForPredicate(existsPredicate, evaluatedWithObject: systemAlert, handler: nil)
    testCase.waitForExpectationsWithTimeout(5, handler: nil)

    app.tap()

    self.tabBars.buttons["Nearby"].tap()

1 个答案:

答案 0 :(得分:0)

您的提醒不是应用中的有效元素,因为您已直接初始化它,而不是从XCUIApplication实例派生它。因此,您传递到systemAlert的{​​{1}}也不是有效的XCUIElement。

更改要从expectationForPredicate派生的alert的分配,这应该可以解决您的问题。

app