如何为UIAlertActions设置accessibilityIdentifier?

11

首先是的,我已经看到了这个问题,但是目前还没有答案。

根本问题是我正在对我的应用进行XCUITesting,而该应用已本地化,所以UIAlertAction也被本地化了,因此我无法找到这个按钮。

我可以通过一些hack方法解决,即将所有的Localizable.strings包含在我的UITesting bundle中,然后像这样获取本地化版本来尝试获取这个按钮。

let localizedAlertTitle = ...(some function to fetch localized name)
let localizedButtonName = ...(some function to fetch localized name)
self.app
    .alerts[localizedAlertTitle]
    .buttons[localizedButtonName]
    .tap()

另一种方式可能是按照此答案所说进行hack,但这太hacky并且有样板文件。

是否有一种方法可以在UIAlertAction上设置accessibilityIdentifier


我也遇到了完全相同的问题。有什么好的解决方案吗? - brainray
1个回答

0

我不确定2018年的情况如何,但现在可以将可访问性标识符分配给UIAlertAction(因为它符合UIAccessibilityIdentification):

let action = UIAlertAction(title: "Title", style: .destructive) { _ in
  // Handle action here.
}
action.accessibilityIdentifier = "ActionIdentifier"

而且我在UI测试中使用它也没有任何问题:

app.buttons["ActionIdentifier"]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接