2017-09-29 90 views
0

這裏是我的代碼 - >https://github.com/patchthecode/XCTestBugXCUItest不流通,即使斷言似乎有效

這是我的觀點 - >

enter image description here

我試圖捕捉灰色視圖。 它包含一個標籤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) 

我究竟做錯了什麼?

回答

0

即使comp謂詞有效,它也不會捕獲灰色視圖。它將捕獲包含「L1」和「11」元素的所有元素。在你的情況下,它捕獲了2個元素:ViewController的視圖和灰色視圖(因爲兩者都包含「L1」和「11」),所以這不是正確的方法來捕獲灰色視圖。 。

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

NSCompoundPredicate解決方案不會因爲查詢的工作:第一部分以捕捉灰色視圖將可訪問標識符添加到它(並啓用輔助功能爲UIView)然後你就可以輕鬆地查詢灰色框正在尋找包含ONE標籤的文字「L1」AND「11」。而且因爲UILabel只能有一個文本,所以總是失敗。