0

如何在 UIAutomation 的 UITextView 中模拟两指从左到右的滑动?

我试过这个:

var textView = target.frontMostApp().mainWindow().textViews()[0];
textView.dragInsideWithOptions({
    touchCount:2,
    startOffset:{x:0.2, y:5.80},
    endOffset:{x:0.8, y:5.80},
    duration:1.5
});

但显然它没有任何效果。2有时即使我通过触摸计数,它看起来也只做一个手指手势。

一个问题是:UIAutomation 如何知道第二次触摸的位置?我只指定一次触摸的开始和结束,而不是两次。它是否正确?也许这是我问题的根源?
另外,我还不是很清楚物体的坐标系。除非我为 x, y 传递非常小的值,否则我通常会收到警告:out of bounds。传递我通常使用 Objective-C 传递的坐标似乎很大:(

4

1 回答 1

1

一个很晚的答案......我在 2015 年的今天遇到了你的问题,我有机会获得用于此功能的 Apple 文档。2012年可能不是这样……

苹果文档说:

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

此示例在目标元素内从左边缘到右边缘执行缓慢拖动,就在顶部下方:

target.dragInsideWithOptions({startOffset:{x:0.0, y:0.1}, endOffset:{x:1.0, y:0.1}, duration:1.5});

所以 x 和 y 值在您选择的矩形内是相对的。在您的示例中:

startOffset:{x:0.2, y:5.80}

您在 textview 中以 20% 的长度从左侧开始滑动,并且 y 超出边界 5.80 倍...

它会更好地使用以下值:

startOffset:{x:0.0, y:0.1}, endOffset:{x:0.5, y:0.1}

就我而言,我使用此代码使两指从左到右滑动工作:

target.frontMostApp().mainWindow().dragInsideWithOptions({touchCount:2, startOffset:{x:0.0, y:0.1}, endOffset:{x:0.5, y:0.1}, duration:1});
于 2015-08-21T13:52:58.597 回答