当我在XCode UI Test中执行以下步骤时。我得到了多个输出。
print(collectionViews.staticTexts.element(matching: NSPredicate(format: "(%@ IN identifiers), "price")).debugDescription)
输出:
Find: Elements matching predicate '"price" IN identifiers'
Output: {
StaticText 0x608000375f00: traits: 8589934656, {{24.0, 384.0}, {197.0, 27.5}}, identifier: 'price', label: '123'
StaticText 0x6080003768c0: traits: 8589934656, {{24.0, 762.0}, {197.0, 27.5}}, identifier: 'price', label: '456'
}
无论如何,我可以使用swift获得单输出而不是多输出。我正在尝试打印标签, 123 。
输出我正在寻找: 123
注意:标签值不断变化。
答案 0 :(得分:0)
如果您在测试期间知道元素的索引,那么您可以根据索引路径定义accessibilityIdentifier,然后在uiautomation测试中使用它来获取元素。
e.g:
// suppose label has traits of a button
label.accessibilityIdentifier = "<some constant>:\(indexPath.row)"
// test class
let label = table.buttons["<some constant>:\(<row index>)"] //this will give u only one element
label.tap()