iOS UITest:如何测试自定义辅助功能操作?

Art*_*sen 8 accessibility ios voiceover xcode-ui-testing xcuitest

我想支持VoiceOver.我有一个UIButton内心UITableViewCell.根据最佳实践,我已禁用了accessibility(.isAccessibilityElement = false)按钮,并为cell(accessibilityCustomActions, NSAccessibilityCustomAction)实现了自定义辅助功能.

这样VoiceOver就不会找到并读取按钮作为自己的元素.为了使按钮后面的功能可访问,我已向单元格添加了自定义辅助功能操作.通过自定义操作,用户可以通过向上和向下滑动来选择操作.然后用双击执行它.

现在我想用UITest测试这个动作.无法访问UITest内的按钮,因为它已禁用可访问性.

如何在UITest内执行自定义辅助功能?

vin*_*ari 0

不知道我是否正确回答了您的问题,或者这是否有效,但您可以尝试使用协调(withNormalizedOffset:)函数来单击该UIButton

例如。

let buttonRectMidX = 300.0
let cellWidth = 320.0
let buttonRectMidY = 25.0
let cellHeight = 50.0


app.tables.firstMatch
    .cells.element(boundBy: 2)
    .coordinate(withNormalizedOffset: CGVector(dx: buttonRectMidX / cellWidth, dy: buttonRectMidY / cellHeight))
    .tap()

Run Code Online (Sandbox Code Playgroud)