在 Calabash 中区分 ScrollView iOS

Distinguishing between UIScrollViews in Calabsh iOS

我正在使用 Calabash 测试 iOS 应用程序,运行 解决命令 scroll 'UIScrollView', :down 向下滚动错误视图的问题,因为它找到了第一个视图是一个UIPageViewController,不是里面的scrollview。

有什么办法可以区分这两种观点吗?基本的 UIScrollView 没有自定义 class,我不想仅仅为了测试而创建一个。还有其他选择吗?我在葫芦文档中找不到任何有用的东西。

干杯!

如果没有自定义细节可以让你区分,但你知道永远只有这两者。 你可以做类似

的事情
sView = query "UIScrollView"
scroll sView[1], :down

我没有测试这个特定的示例代码。但是查询匹配项然后使用特定匹配项是一种有效的方法。

Link 到 github 语法信息 https://github.com/calabash/calabash-ios/wiki/05-Query-syntax

Calabash 查询支持按索引查找。这种方法很脆弱,因为查询依赖于其他视图而不是您正在寻找的视图来正确确定要匹配的视图。 UI 其余部分的更改可能会导致这些查询中断。

但是,如果你没有唯一标识符,使用索引是绝对正确的,也是一个不错的解决方案,你应该谨慎行事。

query("UIScrollView index:1") 将 select second UIScrollView。所有手势的查询语法都相同。