Xcode7/iOS 9 で導入された XCUIApplication、XCUIElement、および XCUIElementQuery を使用して、アプリの 1 つの UI テスト ケースを作成しています。
障害物にぶつかりました。テスト ケースの画面の 1 つは、iOS の位置情報サービスを必要とします。予想どおり、ユーザーは位置情報サービスの使用を許可するように求められ、「 &ボタンAllow “App name” to access your location while you use the app?
を使用」というタイトルのアラートが表示されます。Allow
Don't Allow
問題は、アラートがOS自体によって提示されるため、アプリケーションの要素サブツリーに存在しないことです。
私は以下を記録しました:
print("XYZ:\(app.alerts.count)")//0
var existence = app.staticTexts["Allow “App Name” to access your location while you use the app?"].exists
print("XYZ:\(existence)")//false
existence = app.buttons["Allow"].exists
print("XYZ:\(existence)") //false
UI の記録でも同様のコードが生成されました。
XCUIApplication().alerts["Allow “App Name” to access your location while you use the app?"].collectionViews.buttons["Allow"].tap()
この問題を解決できる API は見つかりませんでした。例えば:
- 画面上の任意の場所をタップします
- アプリ外でアラートを受け取る
では、どうすればこれを乗り越えることができますか?位置情報サービスの承認が不要になるようにテスト ターゲットを構成する方法はありますか。