您好我现在正在学习UITests
我有一个问题
如何检测附件查看tableViewCell
?在UITest
下面是我的tableViewCell
我想要检测详细信息关闭配件视图&#39> s
像这样 app.tables.cells.buttons["FTCellAccesoryIdentifier"].tap()
但是accesorry是UIView
所以我在cellForRows
函数
cell.accessoryView?.accessibilityIdentifier ="FTCellAccesoryIdentifier"
我的测试功能是
我试试
app.tables.cells.elementBoundByIndex(lastCellIndex).otherElements.elementMatchingType(.Any, identifier: "FTCellAccesoryIdentifier").tap()
但没有工作
可以在UITests中点击单元格的accesoryView吗?
答案 0 :(得分:6)
...关于
可以在UITests中点击单元格的accesoryView吗?
...是的。
但您必须使用默认辅助功能标识符
例如,对于像这样的单元格:
在UI测试期间点击详细信息披露按钮(“更多信息”是此处的关键):
XCUIApplication().tables.buttons["More Info, Title"].tap()
在UI测试期间点击单元格本身:
XCUIApplication().tables.staticTexts["Title"].tap()
无法更改详细信息披露的默认辅助功能标识符。 From Apple:
注意:如果您的表格单元格包含任何标准的表格视图元素,例如披露指示符,详细信息披露按钮, 或删除控件,你不必做任何事情来做这些 元素可访问。但是,如果您的表格单元格包含其他类型 对于控件,例如开关或滑块,您需要确保这一点 这些元素可以适当地访问。
当您尝试在cellForRow
中设置详细信息披露的辅助功能标识符/标签时,cell.accessoryView
为零。为什么?同样,来自Apple:
<强> accessoryView的强>
<强>讨论强>
如果此属性的值不是nil,则为UITableViewCell类 在表视图的法线中使用给定视图作为附件视图 (默认)状态;它忽略了accessoryType属性的值。 提供的附件视图可以是框架提供的控件或 标签或自定义视图。附件视图显示在右侧 细胞的一面。
在您定义附件视图之前,附件视图将为零。 :/
如果您真的想为其设置自定义标识符,则需要提供“自己的”详细信息披露(例如:自定义 UIView )。例如(为了说明):
cell.accessoryView = UIView(frame: CGRectMake(0, 0, 20, 20))
cell.accessoryView?.backgroundColor = UIColor.blueColor()
cell.accessoryView?.accessibilityIdentifier = "FTCellAccesoryIdentifier"
答案 1 :(得分:1)
您应该使用/(?!\s)&(?!\s)/g
委托方法来处理点击accessoryButtonTappedForRowWithIndexPath
。
然后通过方法的accessoryView
参数,您可以知道它是哪个单元格!
希望这会有所帮助:)