使用iPhone 6s Plus模拟器而非iPhone 6s的Xcode UITest需要延迟

时间:2016-07-14 00:20:46

标签: ios iphone swift xcode xcode-ui-testing

这是我的UI测试的概要:

func testMyUI() {
    self.app = XCUIApplication()

    //self.delay(forSecondsDuration: 1)
    let alerts = self.app.tables.staticTexts["Alerts"]
    self.waitForElement(alerts)
    alerts.tap()

    let customMessage = self.app.buttons["Custom Message"]
    self.waitForElement(customMessage)
    customMessage.tap()

    <snip>
}

func waitForElement(element:XCUIElement, toBeOnScreen onScreen:Bool=true) {
    var predicate:NSPredicate

    if onScreen {
        predicate = NSPredicate(format: "exists == true")
    }
    else {
        predicate = NSPredicate(format: "exists != true")
    }

    expectationForPredicate(predicate, evaluatedWithObject: element, handler: nil)
    waitForExpectationsWithTimeout(self.timeOutDuration, handler: nil)
}

当我使用带有iOS9.3的iPhone 6s模拟器,但使用iPhone 6s Plus模拟器(也是iOS9.3)时,这可以工作(测试通过),我发现有必要在self.app = XCUIApplication()行。没有iPhone 6s Plus的延迟,第一个waitForElementtap实际上并没有完成它的工作。这似乎是第一次发生太早。 我正在使用Xcode 7.3.1。 想法?

0 个答案:

没有答案