私も、sleep メソッドを使用する代わりに、要素が表示されるまで待機する方法を探しています。UI 要素の読み込みに時間がかかることがありますが、最終的に表示されなくなるわけではありません。.exists を使用して確認できる時点で
Apple によってホストされていない XCUIApplication クラス リファレンスがありますが、OBJ-C にあります:
http://masilotti.com/xctest-documentation/index.html
更新: Xcode UI テストのテスト ケースで、このリンク Delay/Wait から解決策を見つけたと思います
NSPredicate クラスを使用するとうまくいきました。
let welcomePage = app.staticTexts["Landing Page"]
let existsPredicate = NSPredicate(format: "exists == 1")
expectationForPredicate(existsPredicate, evaluatedWithObject: LandingPageLoad, handler: nil)
waitForExpectationsWithTimeout(5, handler: nil)
- まず、待っている値またはオブジェクトの定数を作成します
- NSPredicate クラスを使用して別の定数を作成し、オブジェクトの値を比較します
- 次に、expectationForPredicate メソッドを vars と共に使用します。
- 最後に、ハンドラーにタイムアウトの上限を設定します