iOS UITest:如何找到 UITableViewCell 的 AccessoryView?
iOS UITest : How to find UITableViewCell's AccessoryView?
你好我正在学习UITests
现在
我有一个问题
如何检测 accessoryView 在 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 中点击单元格的 accessoryView 吗?
您应该使用 accessoryButtonTappedForRowWithIndexPath
委托方法来处理对 accessoryView
的点击。
然后通过方法的indexPath
参数就可以知道是哪个单元格了!
希望这会有所帮助:)
TL;DR
关于...
is possible to tap cell's accesoryView in UITests?
...是的。
但是您必须为此使用 默认可访问性标识符。
例如,对于像这样的单元格:
在 UI 测试期间点击 详细信息披露 按钮(“更多信息”是此处的关键):
XCUIApplication().tables.buttons["More Info, Title"].tap()
在 UI 测试期间点击 单元格本身:
XCUIApplication().tables.staticTexts["Title"].tap()
长话短说:
无法更改详细信息披露的默认可访问性标识符。 From Apple:
Note: If your table cells contain any of the standard table-view elements, such as the disclosure indicator, detail disclosure button,
or delete control, you do not have to do anything to make these
elements accessible. If, however, your table cells include other types
of controls, such as a switch or a slider, you need to make sure that
these elements are appropriately accessible.
当您尝试设置 cellForRow
中详细披露的可访问性 identifier/label 时,cell.accessoryView
为零。为什么?同样,来自 Apple:
accessoryView
讨论
If the value of this property is not nil, the UITableViewCell class
uses the given view for the accessory view in the table view’s normal
(default) state; it ignores the value of the accessoryType property.
The provided accessory view can be a framework-provided control or
label or a custom view. The accessory view appears in the the right
side of the cell.
在您定义它们之前,附件视图将为零。 :/
如果您真的想为它。例如(举例说明):
cell.accessoryView = UIView(frame: CGRectMake(0, 0, 20, 20))
cell.accessoryView?.backgroundColor = UIColor.blueColor()
cell.accessoryView?.accessibilityIdentifier = "FTCellAccesoryIdentifier"
你好我正在学习UITests
现在
我有一个问题
如何检测 accessoryView 在 tableViewCell
上的点击??在 UITest
下面是我的tableViewCell
我想要检测细节关闭配件视图的点击
像这样
app.tables.cells.buttons["FTCellAccesoryIdentifier"].tap()
但配件是 UIView
所以我在cellForRows
函数
cell.accessoryView?.accessibilityIdentifier ="FTCellAccesoryIdentifier"
我的测试函数是
我试试
app.tables.cells.elementBoundByIndex(lastCellIndex).otherElements.elementMatchingType(.Any, identifier: "FTCellAccesoryIdentifier").tap()
但不起作用
可以在 UITests 中点击单元格的 accessoryView 吗?
您应该使用 accessoryButtonTappedForRowWithIndexPath
委托方法来处理对 accessoryView
的点击。
然后通过方法的indexPath
参数就可以知道是哪个单元格了!
希望这会有所帮助:)
TL;DR
关于...
is possible to tap cell's accesoryView in UITests?
...是的。
但是您必须为此使用 默认可访问性标识符。
例如,对于像这样的单元格:
在 UI 测试期间点击 详细信息披露 按钮(“更多信息”是此处的关键):
XCUIApplication().tables.buttons["More Info, Title"].tap()
在 UI 测试期间点击 单元格本身:
XCUIApplication().tables.staticTexts["Title"].tap()
长话短说:
无法更改详细信息披露的默认可访问性标识符。 From Apple:
Note: If your table cells contain any of the standard table-view elements, such as the disclosure indicator, detail disclosure button, or delete control, you do not have to do anything to make these elements accessible. If, however, your table cells include other types of controls, such as a switch or a slider, you need to make sure that these elements are appropriately accessible.
当您尝试设置 cellForRow
中详细披露的可访问性 identifier/label 时,cell.accessoryView
为零。为什么?同样,来自 Apple:
accessoryView
讨论
If the value of this property is not nil, the UITableViewCell class uses the given view for the accessory view in the table view’s normal (default) state; it ignores the value of the accessoryType property. The provided accessory view can be a framework-provided control or label or a custom view. The accessory view appears in the the right side of the cell.
在您定义它们之前,附件视图将为零。 :/
如果您真的想为它。例如(举例说明):
cell.accessoryView = UIView(frame: CGRectMake(0, 0, 20, 20))
cell.accessoryView?.backgroundColor = UIColor.blueColor()
cell.accessoryView?.accessibilityIdentifier = "FTCellAccesoryIdentifier"