2015-08-28 12 views
5

這就是我在代碼中設置它:UITests:如何通過具有謂詞的accessibilityIdentifier找到UIBarButtonItem?

XCUIApplication().otherElements["userBarButtonItem"] //doesnt work, and the reason is: 

斷言失敗:UI測試失敗 - 未找到「匹配

let userBarButtonItem = UIBarButtonItem(image: userIcon, 
             style: .Plain, 
             target: self, 
             action: Selector("userButtonTapped:")) 
userBarButtonItem.accessibilityIdentifier = "userBarButtonItem" 

然後裏面UITestCase我需要這個用找userBarButtonItem「其他

有沒有辦法如何找到這個例如使用謂詞?

+0

你得到一個答案呢? – Sandy

+0

不幸的是,仍在尋找答案... –

回答

2

UIBarButtonItem不執行UIAccessibilityIdentification,所以設置accessibilityIdentifier不起作用。

而是嘗試

userBarButtonItem.accessibilityLabel = "userBarButtonItem"

然後在測試用例

XCUIApplication().buttons["userBarButtonItem"]

這應該工作。

UPDATE:

現在的UIBarButtonItem不符合UIAccessibilityIdentification,因此所有這些不是必需的。

+0

不幸的是,這也不起作用 –

+2

現在UIBarButtonItem符合UIAccessibilityIdentification。 https://developer.apple.com/reference/uikit/uiaccessibilityidentification – Sandy

1

這爲我工作:

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:UIString(@"Sign In") style:UIBarButtonItemStyleDone target:self action:@selector(submitPressed:)]; 

self.navigationItem.rightBarButtonItem.accessibilityLabel = @"registration-submit-button"; 

後來我發現它通過

app.navigationBars.buttons["registration-submit-button"]