我想支持VoiceOver。我在UIButton
中有一个UITableViewCell
。根据最佳实践,我禁用了可访问性按钮(.isAccessibilityElement = false
),并为单元格(accessibilityCustomActions, NSAccessibilityCustomAction
实施了自定义可访问性操作。
通过这种方式,VoiceOver不会找到并读取按钮作为自己的元素。为了使按钮后面的功能可访问,我向该单元格添加了一个自定义可访问性操作。使用自定义动作,用户可以上下滑动来选择动作。然后连按两次即可执行。
现在,我想使用UITest测试此操作。无法访问UITest内部的按钮,因为该按钮出于可访问性而被禁用。
如何在UITest中执行自定义辅助功能?
答案 0 :(得分:0)
不知道我的问题是对的还是对的,但是您可以尝试使用coordinate(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()
答案 1 :(得分:0)
如何在UITest中执行自定义辅助功能?
实际上,您不能使用{Xcode 10,iOS 12},即使您可以在UITest中获得一系列动作,它也为零,并且您不能从XCUITEST中触发选择器< em>(UI测试无法像单元测试那样获得对应用程序的代码级访问)。
目前,手动测试是使用VoiceOver测试辅助功能自定义操作的唯一方法。