0

これが私のコードです - > https://github.com/patchthecode/XCTestBug

これが私の見解です - >

ここに画像の説明を入力

灰色のビューをキャプチャしようとしています。ラベルLlとボタンが含まれています11

このコードはビューをキャプチャします

let p1 = NSPredicate(format: "label LIKE[c] %@","L1")
let views = app.otherElements.containing(p1)

このコードもビューを正しくキャプチャします

let p2 = NSPredicate(format: "label LIKE[c] %@","11")
let views = app.otherElements.containing(p2)

しかし、このコードは何もキャプチャできません

let p1 = NSPredicate(format: "label LIKE[c] %@","L1")
let p2 = NSPredicate(format: "label LIKE[c] %@","11")

let comp = NSCompoundPredicate(andPredicateWithSubpredicates: [p1, p2])
let views = app.otherElements.containing(comp)

私は何を間違っていますか?

4

1 に答える 1

0

comp述語が機能したとしても、灰色のビューを捉えることはできません。「L1」要素と「11」要素を含むすべての要素をキャプチャします。あなたの場合、ViewControllerのビューとグレーのビューの 2 つの要素をキャプチャします (どちらにも「L1」と「11」が含まれているため)。したがって、これはグレーのビューをキャプチャする正しい方法ではありません。

灰色のビューをキャプチャする最も簡単な部分は、それにアクセシビリティ識別子を追加することです (そしてそのためのアクセシビリティを有効にしますUIView)。次に、次の方法で灰色のボックスを簡単にクエリできます。

let grayBox = app.otherElements.matching(identifier: "grayBox").element(boundBy: 0)

クエリがテキスト「L1」および「11」のラベルを1 つ含む要素NSCompoundPredicateを探しているため、ソリューションは機能しません。また、UILabel は 1 つのテキストしか持てないため、これは常に失敗します。

于 2017-10-13T13:08:44.780 に答える