如何在UIAutomation中点击集合视图的UICollectionView单元格?

时间:2014-02-13 23:02:05

标签: ios uicollectionview ui-automation ios-ui-automation cells

如何在UIAutomation中点击集合视图的UICollectionView单元?

我试过这个

var iconsCollView = window.collectionViews()[0];
var iconRect = iconsCollView.cells()[0].rect();
var iconX = iconRect.origin.x/100;
var iconY = iconRect.origin.y/100;
iconsCollView.tapWithOptions({tapOffset:{x: iconX, y: iconY}});

但是它会在集合视图中点击另一个单元格,这是我指定其偏移量的单元格以外的错误单元格。

你能帮帮我吗?还有另一种方式吗?

1 个答案:

答案 0 :(得分:0)

来自UIAElement班级参考:

  

您的脚本应将rect对象视为通用JavaScript对象,其原始,x,y,大小,宽度和高度的属性与类似的CGRect Cocoa结构的属性相对应。 rect对象的格式为{origin:{x:xposition,y:yposition},size:{width:widthvalue,height:heightvalue}}。相关坐标是屏幕相关的,并进行调整以考虑设备方向。

来自tapWithOptions方法下的相同来源:

  

您可以使用偏移来在指定元素的rect中指定命中点时获得更精确的精度。偏移包括一对x和y值,每个值的范围从0.0到1.0。这些值分别代表rect中的相对水平和垂直位置,左上角为{x:0.0,y:0.0},右下角为{x:1.0,y:1.0}。因此,{x:0.3,y:0.6}指定中心下方和左侧的位置,{x:1.0,y:0.5}指定最右侧垂直居中的位置。


从您提供的来源,您尝试在集合视图内部点击其中一个单元格的一些奇怪的缩放偏移坐标(而不是预期的矩形中的相对水平和垂直位置)集合视图)。

如果您想点击单元格,只需找到它并在其上调用tap方法:

var iconsCollView = window.collectionViews()[0];
var iconCellToTap = iconsCollView.cells()[0].tap();