2016-05-03 8 views
2

私はUIテストの書き方が初めてです。UI XCTest、ビューに存在する要素

どの要素が表示されているかを知ることができるかどうかを知りたかったのです。私はどれくらい多く、どのように呼び出されているか知りたい。

すべての要素をループするようなものを試しましたが、動作しません。

あなたが現在可視ウィンドウの階層全体を取得するには、あなたのケースで、XCUIElementの debugDescription方法を探している
for element in app.accessibilityElements! { 
     print(element) 
    } 

答えて

4

いつもテストケースにブレークポイントを設定してから、コンソールに印刷呼び出しを行うことができます。

po app.accessibilityElements po app.accessibilityElements.elementBoundByIndex(0) po app.buttons["Icon Menu Light"] etc.

と参照するか、単にpo appへの単純な呼び出し階層を表示します出力ビュー階層に戻ってくるものを参照してください。

func isElementInView(element: XCUIElement) -> Bool { 
    let window = XCUIApplication().windows.elementBoundByIndex(0) 
    return CGRectContainsRect(window.frame, element.frame) } 

app.buttons["Icon Menu Light"].exists ..あなたは、特定のビューが存在することがわかっているしたら..あなたは、ボタン/要素を確認するために、このようなものを使用して試すことができますようにヘルパー関数に渡すことで、現在のビュー内で表示されます

これは、要素が画面に表示されていない場合でも、element.exist呼び出しがtrueを返すため、要素が画面に表示されているかどうかを示します(つまり、何かが画面から隠れてフレームに移行する)

2

app.debugDescription 

ヘッダのコメントを引用:

を提供します要素に関する情報をデバッグします。文字列内のデータは、それが捕捉された 時間に基づいて変化するが、それは以下ならびに追加のデータのいずれかを含むことができる:

• Values for the elements attributes. 
    • The entire tree of descendants rooted at the element. 
    • The element's query. 

このデータは、デバッグのために使用されるべきである - に依存しますテストの一部としてのデータのいずれもサポートされていません。

関連する問題