点击UITableViewCell的自定义按钮?

时间:2016-06-09 20:25:25

标签: ios objective-c xcode-ui-testing

我正在尝试编写一个UITest,其中涉及点击UITableViewCell中的按钮。

enter image description here

当我在点击单元格时尝试录制我的点按操作时,XCode会生成以下行:

[[[[[XCUIApplication alloc] init].tables childrenMatchingType:XCUIElementTypeOther] elementBoundByIndex:1].otherElements[@"Problems"] tap];

播放时,这会导致与单元格本身相同的操作,这不是我想要的。

有没有办法让它专门按下按钮?

1 个答案:

答案 0 :(得分:3)

在自定义按钮上设置辅助功能标识符。然后您可以直接在测试中访问它。

申请代码:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = UITableViewCell()
    cell.accessoryView = CustomButton()
    cell.accessoryView.accessibilityIdentifier = "New Problem \(indexPath.row)"
}

测试代码:

let app = XCUIApplication()
app.buttons["New Problem 42"].tap()