web-dev-qa-db-ja.com

XcodeUIテストでキーボードが表示されているかどうかを検出する方法

新しいXcode7UIテストフレームワークの下でSwiftでUIテキストを書いています。要件は、システムキーボードがアプリに表示されるかどうかをテストすることです。誰かが私にそれをしますか?ありがとう

13
user2823793

2人のオブザーバーを追加する

NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardVisible:", name: UIKeyboardDidShowNotification, object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardHidden:", name: UIKeyboardDidHideNotification, object: nil)

func keyboardVisible(notif: NSNotification) {
    print("keyboardVisible")
}

func keyboardHidden(notif: NSNotification) {
    print("keyboardHidden")
}

キーボードが表示されているときはいつでもkeyboardVisibleが呼び出され、キーボードが非表示のときはいつでもkeyboardHiddenが呼び出されます。

1
Rashwan L

このチェックを試してください:

let app = XCUIApplication()
XCTAssert(app.keyboards.count > 0, "The keyboard is not shown")

または、次のような特定のキーボードキーを確認します。

let app = XCUIApplication()
XCTAssert(app.keyboards.buttons["Next:"].exists, "The keyboard has no Next button")

キーボードでインタラクションを制御することもできます。

let app = XCUIApplication()
app.keyboards.buttons["Next:"].tap()
15
JoriDor