如何在 EarlGrey 中使用 tapAtPoint

How To Use tapAtPoint In EarlGrey

我正在编写测试,我想通过滑动来删除 tableViewCell,暴露红色 "Delete" 编辑操作。我可以很好地滑动单元格,但是当我尝试使用 tapAtPoint.

时出现问题

这是直接来自 GREYActions.h:

* @param point The point that should be tapped. It must be in the coordinate system of the element and it's position is relative to the origin of the element, as in (element_width/2, element_height/2) will tap at the center of element.

我试过使用元素的框架和边界宽度减去 1 磅,然后像这样在单元格中途使用:

CGPointMake(element.frame.size.width - 1, element.frame.size.height / 2)

我仍然无法点击单元格的末尾。

如果我能进一步解释,请告诉我。

@gran_profaci 我采纳了你的想法,但反其道而行之。

这是我学到的:

有一个名为 UITableViewCellDeleteConfirmationView 的 class,这就是您在单元格上滑动时显示的内容。它可能是私有的 class,因为在使用

遍历单元格的子视图时您无法访问它或匹配它
if ([subview class] == [UITableViewCellDeleteConfirmationView class])

从技术上讲,就好像此视图不在屏幕上,然后滑动即可将其带到屏幕上。因此,它实际上 not 在单元格的坐标系内 - 它在 x 轴上 after。例如,如果屏幕的宽度以及 tableView 和 tableViewCell 的宽度为 600,则 confirmationView 的框架原点将类似于 (600.5, ...).

最后,我 添加 5 点到单元格的宽度,并且效果很好。

CGPointMake(element.frame.size.width + 5, element.frame.size.height / 2)