TL;DR
关于...
是否可以在 UI 测试中点击单元格附件视图?
... Yes.
但你必须使用默认辅助功能标识符为了那个原因。
例如,对于这样的单元格:
轻敲详细披露UI 测试期间的按钮(“更多信息“是这里的关键):
XCUIApplication().tables.buttons["More Info, Title"].tap()
Tapping 细胞本身在 UI 测试期间:
XCUIApplication().tables.staticTexts["Title"].tap()
很长的故事:
无法更改详细信息披露的默认可访问性标识符。来自苹果 https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/iPhoneAccessibility/Making_Application_Accessible/Making_Application_Accessible.html#//apple_ref/doc/uid/TP40008785-CH102-SW3:
注意:如果您的表格单元格包含任何标准表格视图元素,例如公开指示器、详细信息公开按钮,
或删除控件,您无需执行任何操作即可使这些
元素可访问。但是,如果您的表格单元格包含其他类型
的控件,例如开关或滑块,您需要确保
这些元素是可以适当访问的。
当您尝试在中设置详细信息披露的可访问性标识符/标签时cellForRow
, cell.accessoryView
为零。为什么?再次,从Apple https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableViewCell_Class/index.html:
附件视图
讨论
如果该属性的值不为零,则 UITableViewCell 类
使用给定的视图作为普通表视图中的附件视图
(默认)状态;它忽略accessoryType属性的值。
提供的附件视图可以是框架提供的控件或
标签或自定义视图。附件视图出现在右侧
细胞的一侧。
在您定义附件视图之前,它们将为零。 :/
您需要提供您“自己的”详细信息披露(例如:定制的UIView)如果您确实想为其设置自定义标识符。例如(为了说明):
cell.accessoryView = UIView(frame: CGRectMake(0, 0, 20, 20))
cell.accessoryView?.backgroundColor = UIColor.blueColor()
cell.accessoryView?.accessibilityIdentifier = "FTCellAccesoryIdentifier"