gpt4 book ai didi

swift - Xcode 用户界面测试 : Accessibility query fail on UITableViewCell

转载 作者:搜寻专家 更新时间:2023-10-30 22:12:38 26 4
gpt4 key购买 nike

问题

使用 Xcode UI 测试,我无法查询 UITableView 中的单元格

说明

UITableView

UITableView 包含 3 个单元格:

import UIKit

@objc class DumpTable: UITableViewController {
var objects: [NSDate] = [NSDate]()

override func viewDidLoad() {
super.viewDidLoad()

objects.append(NSDate())
objects.append(NSDate())
objects.append(NSDate())

tableView.isAccessibilityElement = true
tableView.accessibilityLabel = "Thetable"
tableView.accessibilityIdentifier = "Thetable"
}

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return objects.count
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = UITableViewCell()

let object = objects[indexPath.row]
cell.textLabel!.text = object.description

cell.isAccessibilityElement = true
cell.accessibilityLabel = "Thecell"
cell.accessibilityIdentifier = "Thecell"

return cell
}
}

测试

测试非常简单。

给定一个包含 3 个单元格的 UITableView,我试图断言有任何单元格可用:

XCTAssertTrue(XCUIApplication().tables["Thetable"].exists)
XCTAssertTrue(XCUIApplication().tables["Thetable"].cells.count > 0)

然后它将在 2 个断言上失败:

Assertion Failure: XCTAssertTrue failed - 
/Users/damiengavard/Desktop/Table/TableUITests/TableUITests.swift:33: error: -[TableUITests.TableUITests testExample] : XCTAssertTrue failed -

如何重现

https://github.com/dagio/TableCellAccessibility

只需执行 Cmd+U

最佳答案

我找到了答案 here .为了使 UITableViewCell 可访问,包含的 UITableView 本身不能访问。

因此,您只需要删除这些行:

tableView.isAccessibilityElement = true
tableView.accessibilityLabel = "Thetable"
tableView.accessibilityIdentifier = "Thetable"

关于swift - Xcode 用户界面测试 : Accessibility query fail on UITableViewCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39329509/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com