如果持续时间较长,如何在 Appium iOS 中添加同时移动的触摸?
How to add simultaneously moving touches in Appium iOS if one's duration is longer?
我的应用程序中有一个 UIView
。它接收 UITouch
-es,并且具有相当复杂的处理逻辑。处理逻辑依赖于UIKit触摸界面。
我不知道如何用 TouchAction
或 MultiAction
重现这种情况。
有2次触动。 touch2 开始时间较晚,持续时间较短:
在瞬间t3
和t4
触摸同时移动,然后touch2结束,但是touch1还在动。
我当前的无效代码:https://gist.github.com/gatamar/c7182292a1b54379cc26f3e38c823199
在 UIKit 中,触摸事件如下所示:
touchesBegan: [touch1_t1]
touchesBegan: [touch2_t2]
touchesMoved: [touch1_t3, touch2_t3]
touchesMoved: [touch1_t4, touch2_t4]
touchesEnded: [touch2_t4]
touchesMoved: [touch1_t5]
touchesEnded: [touch1_t5]
可以用 Appium 实现吗?
可以MultiAction
执行两个不同时的触摸吗?
Python Appium Client 中是否有更底层的 API 例如硒、XCUITest?
如有任何帮助,我们将不胜感激。
那好吧。这是在 Java.
中使用手势的示例
PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");
Dimension size = driver.manage().window().getSize();
//get your screen size
Point source = new Point(size.getWidth(), size.getHeight());
//this is resolution of your screen
Sequence pinch = new Sequence(finger, 0);
pinch.addAction(finger.createPointerMove(Duration.ofMillis(0),
PointerInput.Origin.viewport(), source.x / 2, source.y / 2));
pinch.addAction(finger.createPointerDown(PointerInput.MouseButton.LEFT.asArg()));
pinch.addAction(new Pause(finger, Duration.ofMillis(100)));
pinch.addAction(finger.createPointerMove(Duration.ofMillis(600),
PointerInput.Origin.viewport(), source.x / 3, source.y / 3));
然后您需要 perform
通过调用
driver.perform(Arrays.asList(pinchAndZoom1));
如您所见,您可以修改手势的持续时间,尝试一下,您就会了解它是如何工作的。另外 here 是一些带有示例的文档。
我的应用程序中有一个 UIView
。它接收 UITouch
-es,并且具有相当复杂的处理逻辑。处理逻辑依赖于UIKit触摸界面。
我不知道如何用 TouchAction
或 MultiAction
重现这种情况。
有2次触动。 touch2 开始时间较晚,持续时间较短:
在瞬间t3
和t4
触摸同时移动,然后touch2结束,但是touch1还在动。
我当前的无效代码:https://gist.github.com/gatamar/c7182292a1b54379cc26f3e38c823199
在 UIKit 中,触摸事件如下所示:
touchesBegan: [touch1_t1]
touchesBegan: [touch2_t2]
touchesMoved: [touch1_t3, touch2_t3]
touchesMoved: [touch1_t4, touch2_t4]
touchesEnded: [touch2_t4]
touchesMoved: [touch1_t5]
touchesEnded: [touch1_t5]
可以用 Appium 实现吗?
可以MultiAction
执行两个不同时的触摸吗?
Python Appium Client 中是否有更底层的 API 例如硒、XCUITest?
如有任何帮助,我们将不胜感激。
那好吧。这是在 Java.
中使用手势的示例PointerInput finger = new PointerInput(PointerInput.Kind.TOUCH, "finger");
Dimension size = driver.manage().window().getSize();
//get your screen size
Point source = new Point(size.getWidth(), size.getHeight());
//this is resolution of your screen
Sequence pinch = new Sequence(finger, 0);
pinch.addAction(finger.createPointerMove(Duration.ofMillis(0),
PointerInput.Origin.viewport(), source.x / 2, source.y / 2));
pinch.addAction(finger.createPointerDown(PointerInput.MouseButton.LEFT.asArg()));
pinch.addAction(new Pause(finger, Duration.ofMillis(100)));
pinch.addAction(finger.createPointerMove(Duration.ofMillis(600),
PointerInput.Origin.viewport(), source.x / 3, source.y / 3));
然后您需要 perform
通过调用
driver.perform(Arrays.asList(pinchAndZoom1));
如您所见,您可以修改手势的持续时间,尝试一下,您就会了解它是如何工作的。另外 here 是一些带有示例的文档。