XCUIElement 唯一标识符

Posted

技术标签:

【中文标题】XCUIElement 唯一标识符【英文标题】:XCUIElement unique identifier 【发布时间】:2018-10-01 11:15:04 【问题描述】:

在 XCUITests 中,是否有一种独特的方式来识别跨查询持续存在的给定 XCUIElement?

我不能使用标签,因为有时元素可能带有相同的标签。

哈希/哈希值在给定查询中起作用,但在连续查询后刷新。

和往常一样,我找不到关于这个主题的文档:(

【问题讨论】:

【参考方案1】:

您可以通过在UIView 所代表的对象上设置accessibilityIdentifier 来唯一标识XCUIElements。

// app code
let button = UIButton()
button.accessibilityIdentifier = "myButton"

// test code
let app = XCUIApplication()
let button = app.buttons["myButton"]
button.tap()

辅助功能标识符仅用于 UI 测试。它们没有本地化,您有责任将可访问性标识符设置为您需要的唯一值。可访问性标识符将在视图的整个生命周期内保持不变,除非您的代码显式更改它。

【讨论】:

哦,对不起。我知道accessibilityIdentifiers,但在这种情况下,所有元素都已经具有相同的(它们是同一类的重复元素)。即使不是这样,它们也不是真正独特的【参考方案2】:

我这样做的方法是将 indexPath.row 添加到字符串的末尾并将其设置为 AccessibilityIdentifier。

self.accessibilityIdentifier = "ProfileTableViewCell-\(indexPath.row)"
self.detailLabel.accessibilityIdentifier = "ProfileTableViewCell-DetailLabel-\(indexPath.row)

我什至将行值添加到内部单元格元素中。

【讨论】:

以上是关于XCUIElement 唯一标识符的主要内容,如果未能解决你的问题,请参考以下文章

如何获取Android唯一标识

Android 设备唯一标识

如何获取Android唯一标识

js如何生成唯一标识符UUID

2020-09-07 手机设备唯一标识

如何获取Android唯一标识