6

这就是我在代码中设置它的方式:

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”的匹配项 其他

有没有办法例如使用谓词找到这个?

4

2 回答 2

3

UIBarButtonItem没有实现UIAccessibilityIdentification,所以设置accessibilityIdentifier不起作用。

而是尝试

userBarButtonItem.accessibilityLabel = "userBarButtonItem"

然后在测试用例中

XCUIApplication().buttons["userBarButtonItem"]

这应该有效。

更新 :

现在 UIBarButtonItem 确实符合 UIAccessibilityIdentification,所以所有这些都不需要。

于 2015-09-02T22:30:56.933 回答
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"]
于 2015-10-14T15:10:09.410 回答