2017-10-17 12 views
0

NSPredicateを使用して複数の結果をフィルタリングし、目に見えるものを選択することは可能でしょうか?NSPredicateを使用して複数の結果をフィルタリングし、XCUITestで表示される結果を選択しますか?

コードのこの行は、複数の結果を返す:

app.otherElements.containing(.staticText, identifier:"THIS TEXT")

Iはフィルタリングと表示されるものを選択したいです。私がこれをやっているのは、細胞を飛ばしたいからです。これは、レコーダーを使用した後に生成されたコードです:

let collectionViewsQuery = app.collectionViews 
collectionViewsQuery.cells.collectionViews.cells.collectionViews.children(matching: .cell).element(boundBy: 10).otherElements.containing(.staticText, identifier:"THIS TEXT").children(matching: .image).element.tap() 

私は現在のインデックスの指定をスキップして、単にそれにしようとしているが、スタティック識別子は、複数の結果を返します。どのようにフィルタリングするのですか?

答えて

1

必要に応じてNSPredicateでフィルタリングしたり、最初のものが常に表示されることがわかったらリストの最初のものを選択したりできます。

let app = XCUIApplication() 
let visiblePredicate = NSPredicate(format: "isHittable == true") 
let myVisibleElement = app 
    .otherElements 
    .containing(.staticText, identifier: "THIS TEXT") 
    .matching(visiblePredicate) 
    .element(boundBy: 0) 
+0

「NSUknownKeyException」が表示されます –

+0

どの行にありますか? Swiftのどのバージョンを使用していますか? – Oletha

+0

私は現在Swift 3を使用しています。私はこのクエリを単純にしようとしています。https://stackoverflow.com/questions/46776365/refer-to-the-element-by-static-text-withoutgoing-through-the-the私の質問に関連するセル。 –

関連する問題