0

現在、私は XCTest iOS フレームワークで作業しており、.exists 関数を使用して要素の存在を確認しています。.exists が問題になっているため、UI 上の要素の存在を確認する他の方法があるかどうかを知りたいです。最初の実行ではテストは成功しますが、2 回目の実行では失敗します。これは、UI に存在しない要素をスクリプトがクリックするためです。これは、アプリで最初にロードされた要素が非表示のままであるが存在することが原因である可能性があります。

現在の画面要素の存在をチェックする関数を教えてください。

4

2 に答える 2

0

私も、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 と共に使用します。
  • 最後に、ハンドラーにタイムアウトの上限を設定します
于 2015-11-10T18:52:49.373 に答える
0

この回答を参照すると、この XCUIElementQuery 関数は、要素が作成されていない場合を処理できます。

 open func matching(identifier: String) -> XCUIElementQuery

ref: XCode 7 UITest で要素が表示されるかどうかをテストする

于 2017-01-12T16:30:03.147 に答える