我的应用程序中有一个集合视图,它位于表格视图单元格内(是的,我知道它很奇怪),我想要UI测试集合视图的滚动。我使用录制按钮,但是Xcode将我的集合视图上的滑动识别为点击。如果我手动将生成的用户界面测试代码从[collectionview tap]
更改为[collectionview scrollLeft],
,则可以使用,但Xcode无法生成自动刷卡的代码。
可能是什么问题?
答案 0 :(得分:1)
如果您的手势轨迹快速,笔直且与您正在滑动的(上/下/左/右)方向一致,则Xcode仅将手势识别为滑动。
我的猜测是,这可以防止录制拖动或点击并保持手势作为滑动,因为这些不受录制工具的支持。如果你选择其中任何一个,那么点击手势会更接近。
作为一种解决方法,请记下您预期滑动的位置并切换手势,就像您没有记录滑动一样。
答案 1 :(得分:0)
我相信你应该向Apple提交一个错误并包含一个示例项目。
录音系统可能难以区分轻击,长按和滑动。虽然我已经看到轻敲事件的记录是可靠的,但我发现我手动输入了滑动或typeText的任何步骤。通常我使用UI测试记录功能来帮助识别特定元素,然后我在代码中使用它来指定用户交互和断言。
如果你想在github或者你的collectionView-inside-tableViewCell配置的某个地方创建一个示例项目,我愿意看看。
编辑:在尝试您的示例项目后,我有时能够让Xcode记录来自第一个单元格的swipeLeft和swipeRight事件。这不是最优雅的方法,但是在我的MacBook Air上使用触控板,我用一根手指开始水平滑动而不用按下鼠标按钮,然后在第一根手指仍在滑动的同时用另一根手指按下按钮。
有些情况下Xcode将其简单地记录为点击,并且至少有一个例子记录了一个2FingerTap。