XCUIElement 唯一标识符
Posted
技术标签:
【中文标题】XCUIElement 唯一标识符【英文标题】:XCUIElement unique identifier 【发布时间】:2018-10-01 11:15:04 【问题描述】:在 XCUITests 中,是否有一种独特的方式来识别跨查询持续存在的给定 XCUIElement?
我不能使用标签,因为有时元素可能带有相同的标签。
哈希/哈希值在给定查询中起作用,但在连续查询后刷新。
和往常一样,我找不到关于这个主题的文档:(
【问题讨论】:
【参考方案1】:您可以通过在UIView
所代表的对象上设置accessibilityIdentifier
来唯一标识XCUIElement
s。
// 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 唯一标识符的主要内容,如果未能解决你的问题,请参考以下文章