这是我在代码中设置的方式:
let userBarButtonItem = UIBarButtonItem(image: userIcon,
style: .Plain,
target: self,
action: Selector("userButtonTapped:"))
userBarButtonItem.accessibilityIdentifier = "userBarButtonItem"
然后在UITestCase
里面我需要找到:
XCUIApplication().otherElements["userBarButtonItem"] //doesnt work, and the reason is:
断言失败:UI测试失败 - 未找到“userBarButtonItem”匹配的其他
有没有办法如何使用谓词找到它?
答案 0 :(得分:2)
UIBarButtonItem
未实施UIAccessibilityIdentification
,因此设置accessibilityIdentifier
不起作用。
而是尝试
userBarButtonItem.accessibilityLabel = "userBarButtonItem"
然后在测试用例中
XCUIApplication().buttons["userBarButtonItem"]
这应该有用。
更新:
现在UIBarButtonItem确实符合UIAccessibilityIdentification,因此不需要所有这些。
答案 1 :(得分:2)
这对我有用:
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"]