4

你好我正在UITests学习

我有个问题

如何检测附件视图的点击tableViewCell?在 UITest

下面是我的tableViewCell

在此处输入图像描述

我想检测细节关闭配件视图的水龙头

像这样

app.tables.cells.buttons["FTCellAccesoryIdentifier"].tap()

但附件是UIView

cellForRows所以我在函数中分配 accisibility identifier key

cell.accessoryView?.accessibilityIdentifier ="FTCellAccesoryIdentifier"

我的测试功能是

我试试

app.tables.cells.elementBoundByIndex(lastCellIndex).otherElements.elementMatchingType(.Any, identifier: "FTCellAccesoryIdentifier").tap()

但不工作

可以在 UITests 中点击单元格的 accesoryView 吗?

4

2 回答 2

6

TL;博士

关于...

可以在 UITests 中点击单元格的 accesoryView 吗?

... 是的。
但是您必须为此使用默认的可访问性标识符
例如,对于像这样的单元格:

在此处输入图像描述

在 UI 测试期间点击Detail Disclosure按钮(“更多信息”是这里的关键):

XCUIApplication().tables.buttons["More Info, Title"].tap()

在 UI 测试期间点击单元格本身:

XCUIApplication().tables.staticTexts["Title"].tap()    

很长的故事:

无法更改 Detail Disclosure 的默认可访问性标识符。来自苹果

注意:如果您的表格单元格包含任何标准表格视图元素,例如披露指示器、详细信息披露按钮或删除控件,您无需执行任何操作即可使这些元素可访问。但是,如果您的表格单元格包含其他类型的控件,例如开关或滑块,您需要确保这些元素可以适当地访问。

在您尝试在 中设置 Detail Disclosure 的可访问性标识符/标签时cellForRowcell.accessoryView为 nil。为什么?同样,来自苹果

附件查看

讨论

如果此属性的值不为 nil,则 UITableViewCell 类将给定视图用于表格视图正常(默认)状态下的辅助视图;它忽略了附件类型属性的值。提供的附件视图可以是框架提供的控件或标签或自定义视图。附件视图出现在单元格的右侧。

在您定义它们之前,附件视图将为零。:/

如果您真的想为其设置自定义标识符,则需要提供“自己的”详细信息披露(例如:自定义UIView )。例如(说明):

cell.accessoryView = UIView(frame: CGRectMake(0, 0, 20, 20))
cell.accessoryView?.backgroundColor = UIColor.blueColor()
cell.accessoryView?.accessibilityIdentifier = "FTCellAccesoryIdentifier"
于 2016-05-19T14:38:46.563 回答
1

您应该使用accessoryButtonTappedForRowWithIndexPath委托方法来处理点击accessoryView

然后通过indexPath方法的参数就可以知道是哪个单元格了!

希望这会有所帮助:)

于 2016-05-19T11:56:23.430 回答