在全新模拟器上运行时关闭iOS 13键盘教程

时间:2019-12-17 18:10:48

标签: ios ios-simulator ios13 xcode11 xcuitest

我将Xcode 11和iOS 13用作UITest的工作流程的一部分,但是当我第一次使用键盘时,会出现以下内容并由于阻塞键盘而中断了测试:

UI测试中的调用代码:

app.textFields.element(boundBy: 0).tap()

模拟器显示的内容: enter image description here

由于这会阻塞键,因此我的测试将失败。但是,下次我在同一模拟器上运行测试时,它将正常运行。

2 个答案:

答案 0 :(得分:2)

CodeBender的答案很不错,并且指向正确的路径,但是由于continue是Swift中的保留关键字,因此无法编译。另外,等待一小段时间让键盘显示也很好。

    // Sometimes the Apple Keyboard shows some sort of "Swipe" tutorial. Dismiss it!
    private func begoneSwipeTutorial(app: XCUIApplication) {
        let continueButton = app.buttons["Continue"]
        if continueButton.waitForExistence(timeout: 2.0) {
            continueButton.tap()
        }
    }

    // Then use like this
    func inputTextWhatever(app: XCUIApplication, element: XCUIElement) {
        element.tap()
        begoneSwipeTutorial(app: app)
        // Do whatever you need to do
    }

答案 1 :(得分:0)

我能够找到一种解决方案,该解决方案在遇到上述情况时以及在不存在上述情况的后续运行中均适用。

let continue = app.buttons["Continue"]
if continue.exists {
    continue.tap()
}

第一行尝试找到标题为“继续” 的按钮,然后继续在第二行上验证此按钮的存在。如果确实存在,它将tap()退出提示。