32

Xcode7/iOS 9 で導入された XCUIApplication、XCUIElement、および XCUIElementQuery を使用して、アプリの 1 つの UI テスト ケースを作成しています。

障害物にぶつかりました。テスト ケースの画面の 1 つは、iOS の位置情報サービスを必要とします。予想どおり、ユーザーは位置情報サービスの使用を許可するように求められ、「 &ボタンAllow “App name” to access your location while you use the app?を使用」というタイトルのアラートが表示されます。AllowDon'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 は見つかりませんでした。例えば:

  • 画面上の任意の場所をタップします
  • アプリ外でアラートを受け取る

では、どうすればこれを乗り越えることができますか?位置情報サービスの承認が不要になるようにテスト ターゲットを構成する方法はありますか。

4

8 に答える 8