XCTest - UI 使用 XCUIElement 在自定义坐标上使用捏合手势进行测试?
XCTest - UI Testing with XCUIElement using pinch gesture on custom coordinates?
假设我有一个带有 UI 的应用程序,看起来有点像下图:
假设蓝色视图表现得像地图,其他颜色是其他可交互视图。
我需要做一个 XCTest,我需要在我厌倦的那个蓝色视图上“缩小” pinchWithScale:
[blueView pinchWithScale:0.5 velocity:-1];
不幸的是,这不起作用,因为红色视图或紫色视图之一(由于阴影和角的原因与蓝色视图重叠一点点)被触发而不是蓝色上的 pinch
手势查看。
我看到我可以通过以下方法获得 coordinateWithNormalizedOffset (similar like ) 视图:
- (XCUICoordinate *)coordinateWithNormalizedOffset:(CGVector)normalizedOffset;
这将允许我不使用整个蓝色视图来执行“缩小”手势:
XCUICoordinate* blueViewInset = [blueView coordinateWithNormalizedOffset:
CGVectorMake(0.2f, 0.2f)];
但是 XCUICoordinate 对象 blueViewInset
不支持捏合手势。
因此,如何在坐标不在视图边界的 XCUI元素上执行捏合手势以“缩小”?
我也想知道是否有办法创建一个 XCUIElement 的扩展 custom pinch[=42= 】 手势?如果有任何提示,我也将不胜感激。
我发现我 可以(但不想) 在我的 [=10] 的顶部 添加另一个 空视图=] 限制为 其大小 的一半。到目前为止,这适用于我所有的案例,因为到目前为止没有其他视图重叠。它看起来像这样:
在那个空视图上执行 pinchWithScale
有效并且实际上捏 blueView
.
这是一个非常丑陋的解决方案,因为我必须添加一个仅用于 UI 测试的视图。
如果有人知道如何在发布版本中删除它,请告诉我。
更新
我制作了一个构建步骤 运行 脚本,它仅在执行 UI 自动化测试目标时添加此视图。执行后,源代码控制用于撤消添加的视图。
假设我有一个带有 UI 的应用程序,看起来有点像下图:
假设蓝色视图表现得像地图,其他颜色是其他可交互视图。
我需要做一个 XCTest,我需要在我厌倦的那个蓝色视图上“缩小” pinchWithScale:
[blueView pinchWithScale:0.5 velocity:-1];
不幸的是,这不起作用,因为红色视图或紫色视图之一(由于阴影和角的原因与蓝色视图重叠一点点)被触发而不是蓝色上的 pinch
手势查看。
我看到我可以通过以下方法获得 coordinateWithNormalizedOffset (similar like
- (XCUICoordinate *)coordinateWithNormalizedOffset:(CGVector)normalizedOffset;
这将允许我不使用整个蓝色视图来执行“缩小”手势:
XCUICoordinate* blueViewInset = [blueView coordinateWithNormalizedOffset:
CGVectorMake(0.2f, 0.2f)];
但是 XCUICoordinate 对象 blueViewInset
不支持捏合手势。
因此,如何在坐标不在视图边界的 XCUI元素上执行捏合手势以“缩小”?
我也想知道是否有办法创建一个 XCUIElement 的扩展 custom pinch[=42= 】 手势?如果有任何提示,我也将不胜感激。
我发现我 可以(但不想) 在我的 [=10] 的顶部 添加另一个 空视图=] 限制为 其大小 的一半。到目前为止,这适用于我所有的案例,因为到目前为止没有其他视图重叠。它看起来像这样:
在那个空视图上执行 pinchWithScale
有效并且实际上捏 blueView
.
这是一个非常丑陋的解决方案,因为我必须添加一个仅用于 UI 测试的视图。
如果有人知道如何在发布版本中删除它,请告诉我。
更新
我制作了一个构建步骤 运行 脚本,它仅在执行 UI 自动化测试目标时添加此视图。执行后,源代码控制用于撤消添加的视图。